pws 0.9.0 → 0.9.1

Sign up to get free protection for your applications and to get access to all the features.
data/README.md ADDED
@@ -0,0 +1,29 @@
1
+ pws ![Build status](http://travis-ci.org/janlelis/pws.png)
2
+ ===
3
+ pws is a command-line password safe/manager written in Ruby.
4
+
5
+ ![Screenshot](http://rbjl.net/pws-example.png)
6
+
7
+ Installation
8
+ ---
9
+ You can install pws with
10
+ `$ gem install pws`
11
+
12
+ Run `$ pws help` for usage information.
13
+
14
+ Misc
15
+ ---
16
+ Trust the code by reading the source!
17
+
18
+ Originally based on [this tutorial](http://rbjl.net/41-tutorial-build-your-own-password-safe-with-ruby)
19
+
20
+ Cucumber specs loosely based on [the ones](https://github.com/thecatwasnot/passwordsafe/blob/master/features/) by thecatwasnot - thanks
21
+
22
+ Contributions by
23
+ ---
24
+ * [brianewing](https://github.com/brianewing/)
25
+
26
+ Copyright
27
+ ---
28
+
29
+ © 2010-2012 Jan Lelis, MIT license
data/Rakefile CHANGED
@@ -32,3 +32,4 @@ require 'cucumber/rake/task'
32
32
  Cucumber::Rake::Task.new(:spec)
33
33
 
34
34
  task :default => :spec
35
+ task :test => :spec
@@ -0,0 +1,13 @@
1
+ Feature: Access
2
+ In order to use the password safe
3
+ As a user
4
+ I want to create a new safe
5
+
6
+ Scenario: Trying to call a pws task (except help or version), but safe does not exist, yet
7
+ When I run `pws` interactively
8
+ And I type "some_new_master_password"
9
+ Then the output should contain "No password safe detected, creating one at"
10
+ And the output should contain "Please enter a new master password:"
11
+ And the output should contain "There aren't any passwords stored"
12
+
13
+
@@ -0,0 +1,45 @@
1
+ Feature: Add
2
+ In order to have passwords in my password safe
3
+ As a user
4
+ I want to add new passwords to my password safe
5
+
6
+ Scenario: Add a new password for "github"
7
+ Given A safe exists with master password "my_master_password"
8
+ When I run `pws add github` interactively
9
+ And I type "my_master_password"
10
+ And I type "github_password"
11
+ Then the output should contain "Master password:"
12
+ And the output should contain "Please enter a password for github:"
13
+ And the output should contain "The password for github has been added"
14
+
15
+ Scenario: Add a new password for "github", already passing it as command line paramenter (not recommended)
16
+ Given A safe exists with master password "my_master_password"
17
+ When I run `pws add github github_password` interactively
18
+ And I type "my_master_password"
19
+ Then the output should contain "Master password:"
20
+ And the output should contain "The password for github has been added"
21
+
22
+ Scenario: Try to add a new password for "github" (but it already exists)
23
+ Given A safe exists with master password "my_master_password" and a key "github" with password "github_password"
24
+ When I run `pws add github` interactively
25
+ And I type "my_master_password"
26
+ Then the output should contain "Master password:"
27
+ And the output should contain "There is already a password stored for github. You need to remove it before creating a new one!"
28
+
29
+ Scenario: Try to add a new password for "github" (but it's empty)
30
+ Given A safe exists with master password "my_master_password"
31
+ When I run `pws add github` interactively
32
+ And I type "my_master_password"
33
+ And I type ""
34
+ Then the output should contain "Master password:"
35
+ And the output should contain "Please enter a password for github:"
36
+ And the output should contain "Cannot add an empty password!"
37
+
38
+ Scenario: Try to add a new password for "github" (but the master password is wrong)
39
+ Given A safe exists with master password "my_master_password"
40
+ When I run `pws add github` interactively
41
+ And I type "my_master_password_wrong"
42
+ Then the output should contain "Master password:"
43
+ And the output should contain "NO ACCESS"
44
+
45
+
@@ -0,0 +1,65 @@
1
+ Feature: Generate
2
+ In order to have safe passwords in my password safe
3
+ As a user
4
+ I want to generate passwords and add them to my password safe
5
+
6
+ @wait-11s
7
+ @slow-hack
8
+ Scenario: Generate a new password for "github" and gets it
9
+ Given A safe exists with master password "my_master_password"
10
+ When I run `pws generate github` interactively
11
+ And I type "my_master_password"
12
+ Then the output should contain "Master password:"
13
+ And the output should contain "The password for github has been added"
14
+ And the output should contain "The password for github is now available in your clipboard for 10 seconds"
15
+
16
+ @slow-hack
17
+ Scenario: Generate a new password for "github", second parameter gets passed to the get as keep-in-clipboard time
18
+ Given A safe exists with master password "my_master_password"
19
+ When I run `pws generate github 1` interactively
20
+ And I type "my_master_password"
21
+ Then the output should contain "Master password:"
22
+ And the output should contain "The password for github has been added"
23
+ And the output should contain "The password for github is now available in your clipboard for 1 second"
24
+
25
+ @slow-hack
26
+ Scenario: Generate a new password for "github", third parameter defines password length
27
+ Given A safe exists with master password "my_master_password"
28
+ When I run `pws generate github 0 10` interactively
29
+ And I type "my_master_password"
30
+ Then the output should contain "Master password:"
31
+ And the output should contain "The password for github has been added"
32
+ And the output should contain "The password for github has been copied to your clipboard"
33
+ And the clipboard should match /^.{10}$/
34
+
35
+ @slow-hack
36
+ Scenario: Generate a new password for "github", default length is 64
37
+ Given A safe exists with master password "my_master_password"
38
+ When I run `pws generate github 0` interactively
39
+ And I type "my_master_password"
40
+ Then the output should contain "Master password:"
41
+ And the output should contain "The password for github has been added"
42
+ And the output should contain "The password for github has been copied to your clipboard"
43
+ And the clipboard should match /^.{64}$/
44
+
45
+ @slow-hack
46
+ Scenario: Generate a new password for "github", fourth parameter defines a char pool used for generation
47
+ Given A safe exists with master password "my_master_password"
48
+ When I run `pws generate github 0 10 a` interactively
49
+ And I type "my_master_password"
50
+ Then the output should contain "Master password:"
51
+ And the output should contain "The password for github has been added"
52
+ And the output should contain "The password for github has been copied to your clipboard"
53
+ And the clipboard should match /^a{10}$/
54
+
55
+ @slow-hack
56
+ Scenario: Generate a new password for "github", the default char pool is !\"\#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~
57
+ Given A safe exists with master password "my_master_password"
58
+ When I run `pws generate github 0` interactively
59
+ And I type "my_master_password"
60
+ Then the output should contain "Master password:"
61
+ And the output should contain "The password for github has been added"
62
+ And the output should contain "The password for github has been copied to your clipboard"
63
+ And the clipboard should match ^[!\"\#$%&'()*+,\-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~]+$
64
+
65
+
@@ -0,0 +1,52 @@
1
+ Feature: Get
2
+ In order to have a helpful password safe
3
+ As a user
4
+ I want to get passwords from my password safe
5
+
6
+ Scenario: Get the password for "github" (which exists) and copy it to the clipboard
7
+ Given A safe exists with master password "my_master_password" and a key "github" with password "github_password"
8
+ When I run `pws get github 0` interactively
9
+ And I type "my_master_password"
10
+ Then the output should contain "Master password:"
11
+ And the output should contain "The password for github has been copied to your clipboard"
12
+ And the clipboard should contain "github_password"
13
+
14
+ @wait-11s
15
+ Scenario: Get the password for "github" (which exists) and keep it in the clipboard for 10 seconds
16
+ Given A safe exists with master password "my_master_password" and a key "github" with password "github_password"
17
+ When I run `pws get github` interactively
18
+ And I type "my_master_password"
19
+ Then the output should contain "Master password:"
20
+ And the output should contain "The password for github is now available in your clipboard for 10 seconds"
21
+
22
+ Scenario: Get the password for "github" (which exists) and keep it in the clipboard for 1 second
23
+ Given A safe exists with master password "my_master_password" and a key "github" with password "github_password"
24
+ When I run `pws get github 1` interactively
25
+ And I type "my_master_password"
26
+ Then the output should contain "Master password:"
27
+ And the output should contain "The password for github is now available in your clipboard for 1 second"
28
+
29
+ Scenario: Get the password for "github" (which exists) and ensure that the original clipboard content gets restored
30
+ Given A safe exists with master password "my_master_password" and a key "github" with password "github_password"
31
+ Given A clipboard content of "blubb"
32
+ When I run `pws get github 1` interactively
33
+ And I type "my_master_password"
34
+ Then the output should contain "Master password:"
35
+ And the output should contain "The password for github is now available in your clipboard for 1 second"
36
+ And the clipboard should contain "blubb"
37
+
38
+ Scenario: Try to get the password for "google" (which does not exist)
39
+ Given A safe exists with master password "my_master_password" and a key "github" with password "github_password"
40
+ When I run `pws get google` interactively
41
+ And I type "my_master_password"
42
+ Then the output should contain "Master password:"
43
+ And the output should contain "No password found for google!"
44
+
45
+ Scenario: Try to get the password for "github" (but the master password is wrong)
46
+ Given A safe exists with master password "my_master_password" and a key "github" with password "github_password"
47
+ When I run `pws get github` interactively
48
+ And I type "my_master_password_wrong"
49
+ Then the output should contain "Master password:"
50
+ And the output should contain "NO ACCESS"
51
+
52
+
@@ -0,0 +1,61 @@
1
+ Feature: Master
2
+ In order to keep my passwords safe
3
+ As a user
4
+ I want to change the master password
5
+
6
+ @slow-hack
7
+ Scenario: Change the master password and check that it has changed
8
+ Given A safe exists with master password "my_master_password"
9
+ When I run `pws master` interactively
10
+ And I type "my_master_password"
11
+ And I type "my_new_master_password"
12
+ And I type "my_new_master_password"
13
+ Then the output should contain "Master password"
14
+ And the output should contain "Please enter the new master password"
15
+ And the output should contain "again"
16
+ And the output should contain "The master password has been changed"
17
+ When I run `pws` interactively
18
+ And I type "my_master_password"
19
+ And the output from "pws" should contain "Master password"
20
+ And the output from "pws" should contain "NO ACCESS"
21
+
22
+ Scenario: Try to change the master password (but password confirmation is wrong)
23
+ Given A safe exists with master password "my_master_password"
24
+ When I run `pws master` interactively
25
+ And I type "my_master_password"
26
+ And I type "my_new_master_password"
27
+ And I type "my_new_master_password_wrong"
28
+ Then the output should contain "Master password"
29
+ And the output should contain "Please enter the new master password"
30
+ And the output should contain "again"
31
+ And the output should contain "don't match"
32
+
33
+ Scenario: Change the master password, already passing it as command line parameter (not recommended)
34
+ Given A safe exists with master password "my_master_password"
35
+ When I run `pws master my_new_master_password` interactively
36
+ And I type "my_master_password"
37
+ Then the output should contain "Master password:"
38
+ And the output should contain "The master password has been changed"
39
+
40
+ @slow-hack
41
+ Scenario: I can have an empty master password (not recommended)
42
+ Given A safe exists with master password "my_master_password"
43
+ When I run `pws master` interactively
44
+ And I type "my_master_password"
45
+ And I type ""
46
+ And I type ""
47
+ Then the output should contain "Master password:"
48
+ And the output should contain "The master password has been changed"
49
+ When I run `pws` interactively
50
+ And I type ""
51
+ Then the output from "pws" should contain "Master password:"
52
+ And the output from "pws" should contain "There aren't any passwords stored"
53
+
54
+ Scenario: Try to change the master password (but enter the old one wrong)
55
+ Given A safe exists with master password "my_master_password"
56
+ When I run `pws master` interactively
57
+ And I type "my_master_password_wrong"
58
+ Then the output should contain "Master password:"
59
+ And the output should contain "NO ACCESS"
60
+
61
+
@@ -0,0 +1,22 @@
1
+ Feature: Misc
2
+ In order to be happy with my passwords safe
3
+ As a user
4
+ I want ensure the password safe behaves nicely
5
+
6
+ @slow-hack
7
+ Scenario: I am calling with a wrong argument count
8
+ Given A safe exists with master password "my_master_password" and a key "github" with password "github_password"
9
+ When I run `pws get` interactively
10
+ And I type "my_master_password"
11
+ And the output should contain "Wrong number of arguments"
12
+ When I run `pws get github with far too many args` interactively
13
+ And I type "my_master_password"
14
+ And the output from "pws get github with far too many args" should contain "Wrong number of arguments"
15
+
16
+ Scenario: I am calling a task that does not exist
17
+ Given A safe exists with master password "my_master_password" and a key "github" with password "github_password"
18
+ When I run `pws blubb` interactively
19
+ And the output should contain "Unknown action"
20
+ And the output should contain "blubb"
21
+
22
+
@@ -0,0 +1,22 @@
1
+ Feature: Namespaces
2
+ In order to keep things separate
3
+ As a user
4
+ I want to use different safes
5
+
6
+ Scenario: Use a pws namespace
7
+ Given A safe exists with master password "my_master_password" and a key "github" with password "github_password"
8
+ When I run `pws -work show` interactively
9
+ And I type "some_new_master_password"
10
+ Then the output should match /No password safe detected, creating one at.*pws.*-work/
11
+ And the output should contain "Please enter a new master password:"
12
+ And the output should contain "There aren't any passwords stored"
13
+
14
+ Scenario: Only passing "-" operates on usual main namespace
15
+ Given A safe exists with master password "my_master_password" and a key "github" with password "github_password"
16
+ When I run `pws - show` interactively
17
+ And I type "my_master_password"
18
+ Then the output should contain "Master password:"
19
+ And the output should contain "Entries"
20
+ And the output should contain "github"
21
+
22
+
@@ -0,0 +1,27 @@
1
+ Feature: Remove
2
+ In order to keep my password safe clean
3
+ As a user
4
+ I want to remove passwords from my password safe
5
+
6
+ Scenario: Remove password entry "github"
7
+ Given A safe exists with master password "my_master_password" and a key "github" with password "github_password"
8
+ When I run `pws remove github` interactively
9
+ And I type "my_master_password"
10
+ Then the output should contain "Master password:"
11
+ And the output should contain "The password for github has been removed"
12
+
13
+ Scenario: Try to remove password entry for "google" (which does not exist)
14
+ Given A safe exists with master password "my_master_password" and a key "github" with password "github_password"
15
+ When I run `pws remove google` interactively
16
+ And I type "my_master_password"
17
+ Then the output should contain "Master password:"
18
+ And the output should contain "No password found for google!"
19
+
20
+ Scenario: Try to remove password entry "github" (but the master password is wrong)
21
+ Given A safe exists with master password "my_master_password"
22
+ When I run `pws remove github` interactively
23
+ And I type "my_master_password_wrong"
24
+ Then the output should contain "Master password:"
25
+ And the output should contain "NO ACCESS"
26
+
27
+
@@ -0,0 +1,43 @@
1
+ Feature: Rename
2
+ In order to reorder my password safe
3
+ As a user
4
+ I want to rename passwords in my password safe
5
+
6
+ @slow-hack
7
+ Scenario: Rename the password entry "github" to "gh"
8
+ Given A safe exists with master password "my_master_password" and a key "github" with password "github_password"
9
+ When I run `pws rename github gh` interactively
10
+ And I type "my_master_password"
11
+ Then the output should contain "Master password:"
12
+ And the output should contain "The password entry github has been renamed to gh"
13
+ When I run `pws show` interactively
14
+ And I type "my_master_password"
15
+ Then the output from "pws show" should contain "Master password:"
16
+ And the output from "pws show" should contain "Entries"
17
+ And the output from "pws show" should contain "gh"
18
+ And the output from "pws show" should not contain "github"
19
+
20
+ Scenario: Try to rename the password entry "github" to "gh" (but github does not exist)
21
+ Given A safe exists with master password "my_master_password"
22
+ When I run `pws rename github gh` interactively
23
+ And I type "my_master_password"
24
+ Then the output should contain "Master password:"
25
+ And the output should contain "No password found for github!"
26
+
27
+ Scenario: Try to rename the password entry "github" to "gh" (but gh already exists)
28
+ Given A safe exists with master password "my_master_password" and keys
29
+ | github | github_password |
30
+ | gh | gh_password |
31
+ When I run `pws rename github gh` interactively
32
+ And I type "my_master_password"
33
+ Then the output should contain "Master password:"
34
+ And the output should contain "There is already a password stored for gh. You need to remove it before naming another one gh!"
35
+
36
+ Scenario: Try to rename the password entry "github" to "gh" (but the master password is wrong)
37
+ Given A safe exists with master password "my_master_password"
38
+ When I run `pws rename github gh` interactively
39
+ And I type "my_master_password_wrong"
40
+ Then the output should contain "Master password:"
41
+ And the output should contain "NO ACCESS"
42
+
43
+
@@ -0,0 +1,37 @@
1
+ Feature: Show
2
+ In order to have an overview of my password safe
3
+ As a user
4
+ I want show a list of password entry keys
5
+
6
+ Scenario: Show the list
7
+ Given A safe exists with master password "my_master_password" and keys
8
+ | some | 123 |
9
+ | password | 345 |
10
+ | entries | 678 |
11
+ When I run `pws show` interactively
12
+ And I type "my_master_password"
13
+ Then the output should contain "Entries"
14
+ And the output should contain "some"
15
+ And the output should contain "password"
16
+ And the output should contain "entries"
17
+
18
+ Scenario: Show the list (but there is no entry yet)
19
+ Given A safe exists with master password "my_master_password"
20
+ When I run `pws show` interactively
21
+ And I type "my_master_password"
22
+ Then the output should contain "There aren't any passwords stored"
23
+
24
+ Scenario: Show the list ("pws" without show is an alias)
25
+ Given A safe exists with master password "my_master_password"
26
+ When I run `pws` interactively
27
+ And I type "my_master_password"
28
+ Then the output should contain "There aren't any passwords stored"
29
+
30
+ Scenario: Try to show the list (but the master password is wrong)
31
+ Given A safe exists with master password "my_master_password" and a key "github" with password "github_password"
32
+ When I run `pws show` interactively
33
+ And I type "my_master_password_wrong"
34
+ Then the output should contain "Master password:"
35
+ And the output should contain "NO ACCESS"
36
+
37
+
@@ -0,0 +1,36 @@
1
+ def create_safe(master, key_hash = {})
2
+ restore, $stdout = $stdout, StringIO.new # tmp silence $stdout
3
+ pws = PWS.new ENV["PWS"], nil, master
4
+ key_hash.each{ |key, password|
5
+ pws.add key, password
6
+ }
7
+ $stdout = restore
8
+ end
9
+
10
+ Given /^A safe exists with master password "([^"]*)"$/ do |master_password|
11
+ create_safe(master_password)
12
+ end
13
+
14
+ Given /^A safe exists with master password "([^"]*)" and a key "([^"]+)" with password "([^"]+)"$/ do |master_password, key, password|
15
+ create_safe(master_password, key => password)
16
+ end
17
+
18
+ Given /^A safe exists with master password "([^"]*)" and keys$/ do |master_password, key_table|
19
+ create_safe(master_password, key_table.rows_hash)
20
+ end
21
+
22
+ Given /^A clipboard content of "([^"]*)"$/ do |content|
23
+ Clipboard.copy content
24
+ end
25
+
26
+ Then /^the clipboard should contain "([^"]*)"$/ do |password|
27
+ password.should == Clipboard.paste
28
+ end
29
+
30
+ Then /^the clipboard should match \/([^\/]*)\/$/ do |expected|
31
+ assert_matching_output(expected, Clipboard.paste)
32
+ end
33
+
34
+ Then /^the clipboard should match ([^\/].+)$/ do |expected|
35
+ assert_matching_output(expected, Clipboard.paste)
36
+ end
@@ -0,0 +1,41 @@
1
+ require "bundler/setup"
2
+ require 'aruba/cucumber'
3
+ require 'clipboard'
4
+ require 'securerandom'
5
+ require 'fileutils'
6
+ require_relative '../../lib/pws'
7
+
8
+ # Make sure bin is available
9
+
10
+ ENV['PATH'] = "#{File.expand_path(File.dirname(__FILE__) + '/../../bin')}#{File::PATH_SEPARATOR}#{ENV['PATH']}"
11
+
12
+ # Hooks
13
+
14
+ BEGIN{
15
+ $original_pws_file = ENV["PWS"]
16
+ }
17
+
18
+ END{
19
+ Clipboard.clear
20
+ ENV["PWS"] = $original_pws_file
21
+ }
22
+
23
+ Around do |_, block|
24
+ # NOTE: You cannot parallelize the tests, because they use the clipboard and the env var...
25
+ Clipboard.clear
26
+ ENV["PWS"] = File.expand_path('pws-test-' + SecureRandom.uuid)
27
+
28
+ block.call
29
+
30
+ FileUtils.rm ENV["PWS"] if File.exist? ENV["PWS"]
31
+ end
32
+
33
+ # Hacks
34
+
35
+ Before('@slow-hack') do
36
+ @aruba_io_wait_seconds = 0.5
37
+ end
38
+
39
+ Before('@wait-11s') do
40
+ @aruba_timeout_seconds = 11
41
+ end
data/lib/pws.rb CHANGED
@@ -128,7 +128,15 @@ class PWS
128
128
 
129
129
  # Changes the master password
130
130
  def master(password = nil)
131
- @pw_hash = Encryptor.hash password || ask_for_password(%[please enter a new master password], :yellow, :bold)
131
+ if !password
132
+ new_password = ask_for_password(%[please enter the new master password], :yellow, :bold)
133
+ password = ask_for_password(%[please enter the new master password, again], :yellow, :bold)
134
+ if new_password != password
135
+ pa %[The passwords don't match!], :red
136
+ return false
137
+ end
138
+ end
139
+ @pw_hash = Encryptor.hash(password)
132
140
  write_safe
133
141
  pa %[The master password has been changed], :green
134
142
  return true
data/lib/pws/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  class PWS
2
- VERSION = '0.9.0'
2
+ VERSION = '0.9.1'
3
3
  end
data/pws.gemspec CHANGED
@@ -12,11 +12,11 @@ Gem::Specification.new do |s|
12
12
  s.homepage = 'https://github.com/janlelis/pws'
13
13
  s.summary = "pws is a cli password safe."
14
14
  s.description = "pws is a command-line password safe. Please run `pws help` for usage information."
15
- s.files = Dir.glob(%w[{lib,test}/**/*.rb bin/* [A-Z]*.{txt,rdoc} ext/**/*.{rb,c}]) + %w{Rakefile pws.gemspec}
16
- s.extra_rdoc_files = ["README", "LICENSE"]
15
+ s.files = Dir.glob(%w[{lib,test}/**/*.rb bin/* [A-Z]*.{txt,rdoc} ext/**/*.{rb,c} features/**/*]) + %w{Rakefile pws.gemspec}
16
+ s.extra_rdoc_files = ["README.md", "LICENSE"]
17
17
  s.license = 'MIT'
18
18
  s.executables = ['pws']
19
- s.add_dependency 'clipboard', '~> 1.0.0'
19
+ s.add_dependency 'clipboard', '~> 1.0.1'
20
20
  s.add_dependency 'zucker', '>= 12.1'
21
21
  s.add_dependency 'paint', '>= 0.8.4'
22
22
  s.add_development_dependency 'rake'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pws
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 0.9.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,22 +9,22 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-01-19 00:00:00.000000000 Z
12
+ date: 2012-01-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: clipboard
16
- requirement: &17531100 !ruby/object:Gem::Requirement
16
+ requirement: &13917980 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
20
20
  - !ruby/object:Gem::Version
21
- version: 1.0.0
21
+ version: 1.0.1
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *17531100
24
+ version_requirements: *13917980
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: zucker
27
- requirement: &17530380 !ruby/object:Gem::Requirement
27
+ requirement: &13916940 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '12.1'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *17530380
35
+ version_requirements: *13916940
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: paint
38
- requirement: &17529720 !ruby/object:Gem::Requirement
38
+ requirement: &13887320 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 0.8.4
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *17529720
46
+ version_requirements: *13887320
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rake
49
- requirement: &17528920 !ruby/object:Gem::Requirement
49
+ requirement: &13886440 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *17528920
57
+ version_requirements: *13886440
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: cucumber
60
- requirement: &17528420 !ruby/object:Gem::Requirement
60
+ requirement: &13885760 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *17528420
68
+ version_requirements: *13885760
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: aruba
71
- requirement: &17527960 !ruby/object:Gem::Requirement
71
+ requirement: &13885120 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,7 +76,7 @@ dependencies:
76
76
  version: '0'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *17527960
79
+ version_requirements: *13885120
80
80
  description: pws is a command-line password safe. Please run `pws help` for usage
81
81
  information.
82
82
  email: mail@janlelis.de
@@ -84,16 +84,28 @@ executables:
84
84
  - pws
85
85
  extensions: []
86
86
  extra_rdoc_files:
87
- - README
87
+ - README.md
88
88
  - LICENSE
89
89
  files:
90
90
  - lib/pws/encryptor.rb
91
91
  - lib/pws/version.rb
92
92
  - lib/pws.rb
93
93
  - bin/pws
94
+ - features/step_definitions/pws_steps.rb
95
+ - features/remove.feature
96
+ - features/namespaces.feature
97
+ - features/generate.feature
98
+ - features/rename.feature
99
+ - features/show.feature
100
+ - features/add.feature
101
+ - features/access.feature
102
+ - features/master.feature
103
+ - features/get.feature
104
+ - features/support/env.rb
105
+ - features/misc.feature
94
106
  - Rakefile
95
107
  - pws.gemspec
96
- - README
108
+ - README.md
97
109
  - LICENSE
98
110
  homepage: https://github.com/janlelis/pws
99
111
  licenses:
data/README DELETED
@@ -1,13 +0,0 @@
1
- pws is a command-line password safe/manager written in Ruby. Install it with
2
-
3
- $ gem install pws
4
-
5
- Please run `pws help` for usage information.
6
-
7
- Trust the code by reading the source! Originally based on: http://rbjl.net/41-tutorial-build-your-own-password-safe-with-ruby
8
-
9
- Cucumber specs loosely based on https://github.com/thecatwasnot/passwordsafe/blob/master/features/add.feature by thecatwasnot - thanks.
10
-
11
- Copyright: 2010-2012 Jan Lelis, MIT-LICENSE
12
-
13
- J-_-L