kbsecret 0.4.2 → 0.4.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: eb7d10f444c4875844599ef7cea9ba58beafceea
4
- data.tar.gz: 8aaa914e08e66640d5b7f7f0a19234cb7e710345
3
+ metadata.gz: aafa31104e34d5e24baa546e26a05fd9cd695054
4
+ data.tar.gz: 860ddcb29cdc1d2e0a053d8910af5dd0b7e7cc1a
5
5
  SHA512:
6
- metadata.gz: 48a40c37b778e6405d1528b93eb135b8f597b0d935d89de132a7144d1ff005343803dc00a77a6f7ac0f503f75662d5d0f1dee34a6f0a54ceb545ed0621296c19
7
- data.tar.gz: 0cafc5bb7b6be04a730578ed23a17e0a308102e79250a7550b0faf218b57623b63adfe823dd2420742fa74abbd9b91ec167cd141dfd10484559b37543fabf4f1
6
+ metadata.gz: 0d58a6e350bd3972be81081ac70b3832e92b51ebb59d0fbe9a50c3bd36720c2e5e4051dd49c3666122fd6598e96b0ad38a4e911e80cd71a5f899217a8f1a78f2
7
+ data.tar.gz: b5222b237f8ad4caff0869f431a090e7522ffd882cf600e0731d074c981fed2761709ec47bb9bd6a0969bc26d4f3f4e7f18c4a64c3b3207380c31f879e731c3d
data/README.md CHANGED
@@ -30,7 +30,8 @@ For hacking:
30
30
 
31
31
  ```bash
32
32
  $ git clone git@github.com:woodruffw/kbsecret.git && cd kbsecret
33
- $ RUBYLIB=./lib PATH=./bin:${PATH} ./bin/kbsecret help
33
+ $ bundle install
34
+ $ RUBYLIB=./lib PATH=./bin:${PATH} bundle exec ./bin/kbsecret help
34
35
  ```
35
36
 
36
37
  Documentation is available on [RubyDoc](http://www.rubydoc.info/gems/kbsecret/).
@@ -104,3 +105,4 @@ Please feel free to contribute completion scripts for other shells!
104
105
  * zsh/fish completions
105
106
  * facility for moving sessions (add users, change session label, etc)
106
107
  * glob for available sessions instead of requiring explicit configuration
108
+ * complete general record unit tests, individual unit tests for record types and utilities
@@ -5,8 +5,15 @@ module KBSecret
5
5
  class KBSecretError < RuntimeError
6
6
  end
7
7
 
8
+ # Raised during record creation if an unknown record type is requested.
9
+ class RecordTypeUnknownError < KBSecretError
10
+ def initialize(type)
11
+ super "Unknown record type: #{type}"
12
+ end
13
+ end
14
+
8
15
  # Raised during record creation if too many/few arguments are given.
9
- class RecordCreationArityError < RuntimeError
16
+ class RecordCreationArityError < KBSecretError
10
17
  def initialize(exp, act)
11
18
  super "Needed #{exp} arguments for this record, got #{act}"
12
19
  end
@@ -50,12 +50,15 @@ module KBSecret
50
50
  # @param label [Symbol] the new record's label
51
51
  # @param args [Array<String>] the record-type specific arguments
52
52
  # @return [void]
53
+ # @raise UnknownRecordTypeError if the requested type does not exist
54
+ # in {Record.record_types}
53
55
  # @raise RecordCreationArityError if the number of specified record
54
56
  # arguments does not match the record type's constructor
55
57
  def add_record(type, label, *args)
56
58
  klass = Record.class_for(type.to_sym)
57
- arity = klass.instance_method(:initialize).arity - 2
59
+ raise RecordTypeUnknownError, type unless klass
58
60
 
61
+ arity = klass.instance_method(:initialize).arity - 2
59
62
  raise RecordCreationArityError.new(arity, args.size) unless arity == args.size
60
63
 
61
64
  record = klass.new(self, label, *args)
@@ -91,7 +94,6 @@ module KBSecret
91
94
  end
92
95
 
93
96
  # @return [Array<String>] the fully qualified paths of all records in the session
94
- # @api private
95
97
  def record_paths
96
98
  Dir[File.join(directory, "*.json")]
97
99
  end
data/lib/kbsecret.rb CHANGED
@@ -11,7 +11,7 @@ require_relative "kbsecret/cli"
11
11
  # The primary namespace for kbsecret.
12
12
  module KBSecret
13
13
  # kbsecret's current version
14
- VERSION = "0.4.2"
14
+ VERSION = "0.4.3"
15
15
 
16
16
  # fail very early if the user doesn't have keybase and KBFS running
17
17
  raise Keybase::KeybaseNotRunningError unless Keybase.running?
metadata CHANGED
@@ -1,85 +1,85 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kbsecret
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - William Woodruff
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-06-10 00:00:00.000000000 Z
11
+ date: 2017-06-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: keybase-unofficial
14
+ name: clipboard
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.0.7
19
+ version: '1.1'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 0.0.7
26
+ version: '1.1'
27
27
  - !ruby/object:Gem::Dependency
28
- name: slop
28
+ name: keybase-unofficial
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '4.4'
33
+ version: 0.0.8
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '4.4'
40
+ version: 0.0.8
41
41
  - !ruby/object:Gem::Dependency
42
- name: tty-prompt
42
+ name: pastel
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.10.0
47
+ version: '0.7'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 0.10.0
54
+ version: '0.7'
55
55
  - !ruby/object:Gem::Dependency
56
- name: pastel
56
+ name: slop
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '0.7'
61
+ version: '4.4'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '0.7'
68
+ version: '4.4'
69
69
  - !ruby/object:Gem::Dependency
70
- name: clipboard
70
+ name: tty-prompt
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '1.1'
75
+ version: 0.10.0
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '1.1'
82
+ version: 0.10.0
83
83
  description: Manages your passwords, environment, and more via KBFS.
84
84
  email: william@tuffbizz.com
85
85
  executables: