passwordsafe 0.0.2 → 0.0.3

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/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- passwordsafe (0.0.1)
4
+ passwordsafe (0.0.2)
5
5
  highline
6
6
  thor
7
7
 
data/History.md ADDED
@@ -0,0 +1,10 @@
1
+ == 0.0.3
2
+ * New feature: `password get name`
3
+
4
+ == 0.0.2
5
+ * Initial command line utility.
6
+ * New feature: `password add name pass`
7
+
8
+ == 0.0.1
9
+ * First release, core functionality, no command line utility.
10
+
data/README.md CHANGED
@@ -1,14 +1,52 @@
1
- ==Password Safe
1
+ # Password Safe
2
2
  A command line application that can store and retrieve passwords from an encrypted file.
3
3
 
4
- Based on 'Tutorial: Build your own password safe with Ruby!' at http://rbjl.net/41-tutorial-build-your-own-password-safe-with-ruby
4
+ Based on 'Tutorial: Build your own password safe with Ruby!' at http://rbjl.net/41-tutorial-build-your-own-password-safe-with-ruby which won't run on my machine. So rather than try to fix it, I decided to build my own, with an actual attempt at testing/BDD. This was primarily done for my own education, tips/suggestions are welcome.
5
+
6
+ ## Currently implemented
7
+ **NOTE** This gem is currently in alpha, if you'd like to try it and make suggestions feel free but please do not store valuble information in it yet.
8
+
5
9
 
6
- Basic implementation
7
10
  password add name password
11
+ Use passwordsafe to add a password with NAME to the safe. The utility will prompt for a master password to use to encrypt the file. *Do NOT loose your master password, it is unrecoverable!*
8
12
 
9
- Not Implemented yet
10
13
  password get name
14
+ Use passwordsafe to retrive an existing password out of your safe. The utility will prompt for a master password.
15
+
16
+ ## Not Implemented yet
17
+
11
18
  password list
12
19
  password remove name
13
20
  password help
14
21
 
22
+ # Note on Patches/Pull Requests
23
+
24
+ * Fork the project.
25
+ * Make your feature addition or bug fix.
26
+ * Add tests for it. I won't accept pull requests without at least specs, features get you bonus points.
27
+ * Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
28
+ * Send me a pull request.
29
+
30
+ # License
31
+
32
+ Copyright (c) 2010 thecatwasnot
33
+
34
+ Permission is hereby granted, free of charge, to any person obtaining
35
+ a copy of this software and associated documentation files (the
36
+ "Software"), to deal in the Software without restriction, including
37
+ without limitation the rights to use, copy, modify, merge, publish,
38
+ distribute, sublicense, and/or sell copies of the Software, and to
39
+ permit persons to whom the Software is furnished to do so, subject to
40
+ the following conditions:
41
+
42
+ The above copyright notice and this permission notice shall be
43
+ included in all copies or substantial portions of the Software.
44
+
45
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
46
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
47
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
48
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
49
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
50
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
51
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
52
+
@@ -0,0 +1,18 @@
1
+ Feature: Get
2
+ In order get my passwords out of the safe
3
+ As a user
4
+ I want to get my passwords from the password safe
5
+
6
+ Scenario: Get a password with a name that exists
7
+ Given A safe exists with masterpassword "masterpa$$" and a "name" key
8
+ When I run "password get name" interactively
9
+ And I type "masterpa$$"
10
+ Then the output should contain "name: "
11
+
12
+ @announce
13
+ Scenario: Get a password with a name that does not exist
14
+ Given A safe exists with masterpassword "masterpa$$" and a "name" key
15
+ When I run "password get name2" interactively
16
+ And I type "masterpa$$"
17
+ Then the output should contain "name2 does not exist in this safe."
18
+
@@ -18,6 +18,17 @@ module PasswordSafe
18
18
  end
19
19
  end
20
20
 
21
+ desc "get NAME", "Get an existing password with name NAME from keyring"
22
+ def get name
23
+ safe = make_safe
24
+ password = PasswordSafe::Keyring.new(safe).get name
25
+ if password.nil?
26
+ puts "#{name} does not exist in this safe."
27
+ else
28
+ puts "#{name}: #{password}"
29
+ end
30
+ end
31
+
21
32
  no_tasks do
22
33
  def make_safe filename = DEFAULTSAFE
23
34
  masterpass = ask("Enter your master password: ") { |q| q.echo = "x" }
@@ -1,4 +1,4 @@
1
1
  module Passwordsafe
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
4
4
 
data/spec/keyring_spec.rb CHANGED
@@ -49,6 +49,10 @@ describe PasswordSafe::Keyring do
49
49
  @keyring = PasswordSafe::Keyring.new(@safe)
50
50
  @keyring.get("name").should eq("password")
51
51
  end
52
+ it "returns nil if the key does not exist" do
53
+ @keyring = PasswordSafe::Keyring.new(@safe)
54
+ @keyring.get("name").should be_nil
55
+ end
52
56
  end
53
57
 
54
58
  context "list" do
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 0
8
- - 2
9
- version: 0.0.2
8
+ - 3
9
+ version: 0.0.3
10
10
  platform: ruby
11
11
  authors:
12
12
  - thecatwasnot
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-12-22 00:00:00 -06:00
17
+ date: 2010-12-23 00:00:00 -06:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -110,10 +110,12 @@ files:
110
110
  - .rvmrc
111
111
  - Gemfile
112
112
  - Gemfile.lock
113
+ - History.md
113
114
  - README.md
114
115
  - Rakefile
115
116
  - bin/password
116
117
  - features/add.feature
118
+ - features/get.feature
117
119
  - features/step_definitions/safe_steps.rb
118
120
  - features/support/env.rb
119
121
  - lib/passwordsafe.rb