keyrack 0.3.0.pre → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +17 -0
  3. data/Gemfile +8 -15
  4. data/Guardfile +6 -0
  5. data/LICENSE.txt +4 -2
  6. data/Rakefile +2 -56
  7. data/keyrack.gemspec +22 -104
  8. data/lib/keyrack.rb +9 -1
  9. data/lib/keyrack/database.rb +64 -98
  10. data/lib/keyrack/event.rb +13 -0
  11. data/lib/keyrack/exceptions.rb +4 -0
  12. data/lib/keyrack/group.rb +225 -0
  13. data/lib/keyrack/migrator.rb +45 -0
  14. data/lib/keyrack/runner.rb +98 -44
  15. data/lib/keyrack/site.rb +92 -0
  16. data/lib/keyrack/ui/console.rb +234 -95
  17. data/lib/keyrack/utils.rb +0 -18
  18. data/lib/keyrack/version.rb +3 -0
  19. data/test/fixtures/database-3.dat +0 -0
  20. data/test/helper.rb +11 -1
  21. data/test/integration/test_interactive_console.rb +139 -0
  22. data/test/unit/store/test_filesystem.rb +21 -0
  23. data/test/unit/store/test_ssh.rb +32 -0
  24. data/test/unit/test_database.rb +201 -0
  25. data/test/unit/test_event.rb +41 -0
  26. data/test/unit/test_group.rb +703 -0
  27. data/test/unit/test_migrator.rb +105 -0
  28. data/test/unit/test_runner.rb +407 -0
  29. data/test/unit/test_site.rb +181 -0
  30. data/test/unit/test_store.rb +13 -0
  31. data/test/unit/test_utils.rb +8 -0
  32. data/test/unit/ui/test_console.rb +495 -0
  33. metadata +98 -94
  34. data/Gemfile.lock +0 -45
  35. data/TODO +0 -4
  36. data/VERSION +0 -1
  37. data/features/console.feature +0 -103
  38. data/features/step_definitions/keyrack_steps.rb +0 -61
  39. data/features/support/env.rb +0 -16
  40. data/test/fixtures/aes +0 -0
  41. data/test/fixtures/config.yml +0 -4
  42. data/test/fixtures/id_rsa +0 -54
  43. data/test/keyrack/store/test_filesystem.rb +0 -25
  44. data/test/keyrack/store/test_ssh.rb +0 -36
  45. data/test/keyrack/test_database.rb +0 -111
  46. data/test/keyrack/test_runner.rb +0 -111
  47. data/test/keyrack/test_store.rb +0 -15
  48. data/test/keyrack/test_utils.rb +0 -41
  49. data/test/keyrack/ui/test_console.rb +0 -308
metadata CHANGED
@@ -1,194 +1,198 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: keyrack
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0.pre
5
- prerelease: 6
4
+ version: 0.3.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Jeremy Stephens
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-01-11 00:00:00.000000000 Z
11
+ date: 2013-06-11 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: net-scp
16
- requirement: &18759120 !ruby/object:Gem::Requirement
17
- none: false
15
+ requirement: !ruby/object:Gem::Requirement
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :runtime
23
21
  prerelease: false
24
- version_requirements: *18759120
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
25
27
  - !ruby/object:Gem::Dependency
26
28
  name: highline
27
- requirement: &18757080 !ruby/object:Gem::Requirement
28
- none: false
29
+ requirement: !ruby/object:Gem::Requirement
29
30
  requirements:
30
- - - ! '>='
31
+ - - '>='
31
32
  - !ruby/object:Gem::Version
32
33
  version: '0'
33
34
  type: :runtime
34
35
  prerelease: false
35
- version_requirements: *18757080
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
36
41
  - !ruby/object:Gem::Dependency
37
- name: copier
38
- requirement: &18755860 !ruby/object:Gem::Requirement
39
- none: false
42
+ name: clipboard
43
+ requirement: !ruby/object:Gem::Requirement
40
44
  requirements:
41
- - - ! '>='
45
+ - - '>='
42
46
  - !ruby/object:Gem::Version
43
47
  version: '0'
44
48
  type: :runtime
45
49
  prerelease: false
46
- version_requirements: *18755860
47
- - !ruby/object:Gem::Dependency
48
- name: bundler
49
- requirement: &18755260 !ruby/object:Gem::Requirement
50
- none: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ~>
52
+ - - '>='
53
53
  - !ruby/object:Gem::Version
54
- version: 1.0.0
55
- type: :development
56
- prerelease: false
57
- version_requirements: *18755260
54
+ version: '0'
58
55
  - !ruby/object:Gem::Dependency
59
- name: jeweler
60
- requirement: &18754600 !ruby/object:Gem::Requirement
61
- none: false
56
+ name: scrypty
57
+ requirement: !ruby/object:Gem::Requirement
62
58
  requirements:
63
- - - ~>
59
+ - - '>='
64
60
  - !ruby/object:Gem::Version
65
- version: 1.5.1
66
- type: :development
61
+ version: '0'
62
+ type: :runtime
67
63
  prerelease: false
68
- version_requirements: *18754600
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: rcov
71
- requirement: &18754000 !ruby/object:Gem::Requirement
72
- none: false
70
+ name: bundler
71
+ requirement: !ruby/object:Gem::Requirement
73
72
  requirements:
74
- - - ! '>='
73
+ - - '>='
75
74
  - !ruby/object:Gem::Version
76
75
  version: '0'
77
76
  type: :development
78
77
  prerelease: false
79
- version_requirements: *18754000
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
80
83
  - !ruby/object:Gem::Dependency
81
84
  name: mocha
82
- requirement: &18753200 !ruby/object:Gem::Requirement
83
- none: false
85
+ requirement: !ruby/object:Gem::Requirement
84
86
  requirements:
85
- - - ! '>='
87
+ - - '>='
86
88
  - !ruby/object:Gem::Version
87
89
  version: '0'
88
90
  type: :development
89
91
  prerelease: false
90
- version_requirements: *18753200
91
- - !ruby/object:Gem::Dependency
92
- name: cucumber
93
- requirement: &18752620 !ruby/object:Gem::Requirement
94
- none: false
92
+ version_requirements: !ruby/object:Gem::Requirement
95
93
  requirements:
96
- - - ! '>='
94
+ - - '>='
97
95
  - !ruby/object:Gem::Version
98
96
  version: '0'
99
- type: :development
100
- prerelease: false
101
- version_requirements: *18752620
102
97
  - !ruby/object:Gem::Dependency
103
98
  name: test-unit
104
- requirement: &18751900 !ruby/object:Gem::Requirement
105
- none: false
99
+ requirement: !ruby/object:Gem::Requirement
106
100
  requirements:
107
- - - ! '>='
101
+ - - '>='
108
102
  - !ruby/object:Gem::Version
109
103
  version: '0'
110
104
  type: :development
111
105
  prerelease: false
112
- version_requirements: *18751900
113
- description: Simple password manager with local/remote database storage and RSA encryption.
114
- email: viking@pillageandplunder.net
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ description: Simple password manager with local/remote database storage and scrypt
112
+ encryption.
113
+ email:
114
+ - viking@pillageandplunder.net
115
115
  executables:
116
116
  - keyrack
117
117
  extensions: []
118
- extra_rdoc_files:
119
- - LICENSE.txt
120
- - README.rdoc
121
- - TODO
118
+ extra_rdoc_files: []
122
119
  files:
123
120
  - .document
121
+ - .gitignore
124
122
  - .rvmrc
125
123
  - Gemfile
126
- - Gemfile.lock
124
+ - Guardfile
127
125
  - LICENSE.txt
128
126
  - README.rdoc
129
127
  - Rakefile
130
- - TODO
131
- - VERSION
132
128
  - bin/keyrack
133
- - features/console.feature
134
- - features/step_definitions/keyrack_steps.rb
135
- - features/support/env.rb
136
129
  - keyrack.gemspec
137
130
  - lib/keyrack.rb
138
131
  - lib/keyrack/database.rb
132
+ - lib/keyrack/event.rb
133
+ - lib/keyrack/exceptions.rb
134
+ - lib/keyrack/group.rb
135
+ - lib/keyrack/migrator.rb
139
136
  - lib/keyrack/runner.rb
137
+ - lib/keyrack/site.rb
140
138
  - lib/keyrack/store.rb
141
139
  - lib/keyrack/store/filesystem.rb
142
140
  - lib/keyrack/store/ssh.rb
143
141
  - lib/keyrack/ui.rb
144
142
  - lib/keyrack/ui/console.rb
145
143
  - lib/keyrack/utils.rb
146
- - test/fixtures/aes
147
- - test/fixtures/config.yml
144
+ - lib/keyrack/version.rb
145
+ - test/fixtures/database-3.dat
148
146
  - test/fixtures/foo.txt
149
- - test/fixtures/id_rsa
150
147
  - test/helper.rb
151
- - test/keyrack/store/test_filesystem.rb
152
- - test/keyrack/store/test_ssh.rb
153
- - test/keyrack/test_database.rb
154
- - test/keyrack/test_runner.rb
155
- - test/keyrack/test_store.rb
156
- - test/keyrack/test_utils.rb
157
- - test/keyrack/ui/test_console.rb
148
+ - test/integration/test_interactive_console.rb
149
+ - test/unit/store/test_filesystem.rb
150
+ - test/unit/store/test_ssh.rb
151
+ - test/unit/test_database.rb
152
+ - test/unit/test_event.rb
153
+ - test/unit/test_group.rb
154
+ - test/unit/test_migrator.rb
155
+ - test/unit/test_runner.rb
156
+ - test/unit/test_site.rb
157
+ - test/unit/test_store.rb
158
+ - test/unit/test_utils.rb
159
+ - test/unit/ui/test_console.rb
158
160
  homepage: http://github.com/viking/keyrack
159
- licenses:
160
- - MIT
161
+ licenses: []
162
+ metadata: {}
161
163
  post_install_message:
162
164
  rdoc_options: []
163
165
  require_paths:
164
166
  - lib
165
167
  required_ruby_version: !ruby/object:Gem::Requirement
166
- none: false
167
168
  requirements:
168
- - - ! '>='
169
+ - - '>='
169
170
  - !ruby/object:Gem::Version
170
171
  version: '0'
171
- segments:
172
- - 0
173
- hash: -4508723743310181824
174
172
  required_rubygems_version: !ruby/object:Gem::Requirement
175
- none: false
176
173
  requirements:
177
- - - ! '>'
174
+ - - '>='
178
175
  - !ruby/object:Gem::Version
179
- version: 1.3.1
176
+ version: '0'
180
177
  requirements: []
181
178
  rubyforge_project:
182
- rubygems_version: 1.8.11
179
+ rubygems_version: 2.0.2
183
180
  signing_key:
184
- specification_version: 3
181
+ specification_version: 4
185
182
  summary: Simple password manager
186
183
  test_files:
184
+ - test/fixtures/database-3.dat
185
+ - test/fixtures/foo.txt
187
186
  - test/helper.rb
188
- - test/keyrack/store/test_filesystem.rb
189
- - test/keyrack/store/test_ssh.rb
190
- - test/keyrack/test_database.rb
191
- - test/keyrack/test_runner.rb
192
- - test/keyrack/test_store.rb
193
- - test/keyrack/test_utils.rb
194
- - test/keyrack/ui/test_console.rb
187
+ - test/integration/test_interactive_console.rb
188
+ - test/unit/store/test_filesystem.rb
189
+ - test/unit/store/test_ssh.rb
190
+ - test/unit/test_database.rb
191
+ - test/unit/test_event.rb
192
+ - test/unit/test_group.rb
193
+ - test/unit/test_migrator.rb
194
+ - test/unit/test_runner.rb
195
+ - test/unit/test_site.rb
196
+ - test/unit/test_store.rb
197
+ - test/unit/test_utils.rb
198
+ - test/unit/ui/test_console.rb
@@ -1,45 +0,0 @@
1
- GEM
2
- remote: http://rubygems.org/
3
- specs:
4
- builder (3.0.0)
5
- copier (1.3)
6
- cucumber (1.1.4)
7
- builder (>= 2.1.2)
8
- diff-lcs (>= 1.1.2)
9
- gherkin (~> 2.7.1)
10
- json (>= 1.4.6)
11
- term-ansicolor (>= 1.0.6)
12
- diff-lcs (1.1.3)
13
- gherkin (2.7.1)
14
- json (>= 1.4.6)
15
- git (1.2.5)
16
- highline (1.6.9)
17
- jeweler (1.5.2)
18
- bundler (~> 1.0.0)
19
- git (>= 1.2.5)
20
- rake
21
- json (1.6.4)
22
- metaclass (0.0.1)
23
- mocha (0.10.0)
24
- metaclass (~> 0.0.1)
25
- net-scp (1.0.4)
26
- net-ssh (>= 1.99.1)
27
- net-ssh (2.2.1)
28
- rake (0.9.2.2)
29
- rcov (0.9.11)
30
- term-ansicolor (1.0.7)
31
- test-unit (2.4.3)
32
-
33
- PLATFORMS
34
- ruby
35
-
36
- DEPENDENCIES
37
- bundler (~> 1.0.0)
38
- copier
39
- cucumber
40
- highline
41
- jeweler (~> 1.5.1)
42
- mocha
43
- net-scp
44
- rcov
45
- test-unit
data/TODO DELETED
@@ -1,4 +0,0 @@
1
- - Break up runner tests into smaller pieces
2
- - Break up cucumber features into smaller pieces
3
- - Handle multiple usernames for the same site
4
- - Delete empty groups when last entry is deleted
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 0.3.0.pre
@@ -1,103 +0,0 @@
1
- Feature: Console runner
2
- I want to run Keyrack from the console
3
-
4
- Scenario: starting for the first time with a filesystem store
5
- * I run keyrack interactively
6
- * I wait a few seconds
7
- * the output should contain "New passphrase:"
8
- * I type "secret"
9
- * the output should contain "Confirm passphrase:"
10
- * I type "secret"
11
- * I wait a few seconds
12
- * the output should contain "Choose storage type:"
13
- * I type "filesystem"
14
-
15
- * the output should contain "[g]roup"
16
- * I type "g" to add a new group
17
- * the output should contain "Group:"
18
- * I type "Social"
19
- * the output should contain "[n]ew"
20
- * I type "n" to add a new entry
21
- * the output should contain "Label:"
22
- * I type "Twitter"
23
- * the output should contain "Username:"
24
- * I type "dudeguy"
25
- * the output should contain "Generate password?"
26
- * I type "n" for no
27
- * the output should contain "Password:"
28
- * I type "kittens"
29
- * the output should contain "Password (again):"
30
- * I type "kittens"
31
- * the output should contain "1. Twitter [dudeguy]"
32
- * the output should also contain "[s]ave"
33
- * I type "s" to save the database
34
- * the output should contain "[t]op"
35
- * I type "t"
36
- * the output should match /1\. .+Social.+/
37
-
38
- * the output should also contain "[n]ew"
39
- * I type "n" to add a new entry
40
- * the output should contain "Label:"
41
- * I type "Company X"
42
- * the output should contain "Username:"
43
- * I type "buddypal"
44
- * the output should contain "Generate password?"
45
- * I type "y" for yes
46
- * the output should contain "Sound good? [yn]"
47
- * I type "y" for yes
48
- * the output should contain "2. Company X [buddypal]"
49
- * the output should also contain "[s]ave"
50
- * I type "n" to add a new entry
51
- * the output should contain "Label:"
52
- * I type "Company X"
53
- * the output should contain "Username:"
54
- * I type "friendguy"
55
- * the output should contain "Generate password?"
56
- * I type "y" for yes
57
- * the output should contain "Sound good? [yn]"
58
- * I type "y" for yes
59
- * the output should contain "3. Company X [friendguy]"
60
- * I type "s" to save the database
61
-
62
- * the output should contain "[q]uit"
63
- * I type "q" to quit
64
- * I wait a few seconds
65
- * I run keyrack interactively again
66
- * I wait a few seconds
67
- * the output should contain "Keyrack password:"
68
- * I type "secret"
69
- * I wait a few seconds
70
- * the output should match /1\. .+Social.+/
71
- * the output should also contain "2. Company X [buddypal]"
72
- * the output should also contain "3. Company X [friendguy]"
73
- * I type "1" for Social
74
- * the output should contain "1. Twitter [dudeguy]"
75
- * I type "1" for Twitter
76
- * my clipboard should contain "kittens"
77
-
78
- * the output should contain "[d]elete"
79
- * I type "d"
80
- * the output should contain "1. Twitter [dudeguy]"
81
- * I type "1"
82
- * the output should contain "Are you sure?"
83
- * I type "y"
84
- * the output should contain "[t]op"
85
- * I type "t"
86
-
87
- * the output should contain "2. Company X [buddypal]"
88
- * I type "2" for Company X (buddypal)
89
- * my clipboard should match "^.{8}$"
90
-
91
- * the output should contain "Main Menu"
92
- * I type "d"
93
- * the output should contain "1. Company X [buddypal]"
94
- * I type "1"
95
- * the output should contain "Company X [buddypal]"
96
- * the output should also contain "Are you sure?"
97
- * I type "y"
98
-
99
- * the output should contain "Main Menu"
100
- * the output should also contain "2. Company X [friendguy]"
101
- * I type "q" to quit
102
- * the output should contain "Really quit?" (since the database is dirty)
103
- * I type "y"