keyrack 0.3.0.pre → 0.3.0

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 (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"