kbsecret 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b6dc4f0b34abfe1a2039f9b657525efc5e5d678b
4
- data.tar.gz: ec05f73bc4d7da3d6dfba1fe3add2fd58db90bc8
3
+ metadata.gz: 3f807d04b3f3365845cb00d88dc4c117815f8338
4
+ data.tar.gz: d5aa5f00590f7660391758f9408eb567b8ff9258
5
5
  SHA512:
6
- metadata.gz: 1807d92771a23c68cbc9a1568d4e64d6798bd8390c5c9e624b78b39a576428e81dcd8292ae89039f7d5d026e744873f024e1dd84fc56328832220a301cb6aef3
7
- data.tar.gz: c7898dab3eec671c45a6817c8ad9404cd7e5281d1ea0389a29c7dcf306125b8a3fa6a5846ca269db1aaf72332d45ae427887a0792007c02933e98190484834cb
6
+ metadata.gz: ffb8f5e6d8658c48911ee49b7f2f9cc4127bbb3c92aea221a9b06b9727d15bde4f283170def0f9f9337b40186baa970434b89994ea6050aeace0f31f7c45cd10
7
+ data.tar.gz: 3a0656fc05c14ae990ceea61619476edf8c67ceb7b21f88e4b092e7894466f69600926f62620f2e1b786832d73c31b239c48f5fc959c3a31d08e97cdd362d84a
data/bin/kbsecret-env CHANGED
@@ -38,7 +38,7 @@ end
38
38
 
39
39
  session = KBSecret::Session.new label: sess_name
40
40
 
41
- env_records = session.records.select { |r| r.type == "environment" }
41
+ env_records = session.records :environment
42
42
 
43
43
  if opts.all?
44
44
  selected_records = env_records
data/bin/kbsecret-list CHANGED
@@ -12,7 +12,7 @@ opts = Slop.parse suppress_errors: true do |o|
12
12
  EOS
13
13
 
14
14
  o.string "-s", "--session", "the session name", default: :default
15
- o.string "-t", "--type", "the type of secrets to list", default: :all
15
+ o.string "-t", "--type", "the type of secrets to list", default: nil
16
16
  o.bool "-a", "--show-all", "show everything in each secret (i.e. metadata)"
17
17
 
18
18
  o.on "-h", "--help" do
@@ -34,11 +34,7 @@ end
34
34
 
35
35
  session = KBSecret::Session.new label: sess_name
36
36
 
37
- if opts[:type] != :all
38
- records = session.records.select { |r| r.type == opts[:type] }
39
- else
40
- records = session.records
41
- end
37
+ records = session.records opts[:type]
42
38
 
43
39
  records.each do |record|
44
40
  line = "#{record.label}\n"
data/bin/kbsecret-login CHANGED
@@ -37,7 +37,7 @@ end
37
37
 
38
38
  session = KBSecret::Session.new label: sess_name
39
39
 
40
- login_records = session.records.select { |r| r.type == "login" }
40
+ login_records = session.records :login
41
41
 
42
42
  if opts.all?
43
43
  selected_records = login_records
data/bin/kbsecret-pass CHANGED
@@ -38,7 +38,7 @@ end
38
38
 
39
39
  session = KBSecret::Session.new label: sess_name
40
40
  label = opts.args.shift
41
- login_records = session.records.select { |r| r.type == "login" }
41
+ login_records = session.records :login
42
42
  record = login_records.find { |r| r.label == label }
43
43
 
44
44
  abort("Fatal: No such login record.") unless record
data/bin/kbsecret-todo CHANGED
@@ -42,7 +42,7 @@ command, label = opts.args.shift 2
42
42
 
43
43
  abort("Fatal: Missing subcommand.") unless command && label
44
44
 
45
- todo_records = session.records.select { |r| r.type == "todo" }
45
+ todo_records = session.records :todo
46
46
  todo = todo_records.find { |r| r.label == label }
47
47
 
48
48
  abort("Fatal: No such todo record.") unless todo
data/lib/kbsecret.rb CHANGED
@@ -8,7 +8,7 @@ require_relative "kbsecret/session"
8
8
  # The primary namespace for kbsecret.
9
9
  module KBSecret
10
10
  # kbsecret's current version
11
- VERSION = "0.1.0".freeze
11
+ VERSION = "0.1.1".freeze
12
12
 
13
13
  # fail very early if the user doesn't have keybase and KBFS running
14
14
  raise Keybase::KeybaseNotRunningError unless Keybase.running?
@@ -15,21 +15,21 @@ module KBSecret
15
15
  klasses
16
16
  end
17
17
 
18
- # @return [Array<String>] the types of all records
18
+ # @return [Array<Symbol>] the types of all records
19
19
  def self.record_types
20
20
  record_classes.map(&:type)
21
21
  end
22
22
 
23
- # @param type [String] the record type
23
+ # @param type [String, Symbol] the record type
24
24
  # @return [Class, nil] the record class corresponding to the given type
25
25
  def self.class_for(type)
26
- record_classes.find { |c| c.type == type }
26
+ record_classes.find { |c| c.type == type.to_sym }
27
27
  end
28
28
 
29
- # @param type [String] the record type
29
+ # @param type [String, Symbol] the record type
30
30
  # @return [Boolean] whether a record class exists of the given type
31
31
  def self.type?(type)
32
- record_types.include?(type)
32
+ record_types.include?(type.to_sym)
33
33
  end
34
34
 
35
35
  # Load a record by path into the given session.
@@ -39,7 +39,7 @@ module KBSecret
39
39
  # @api private
40
40
  def self.load_record!(session, path)
41
41
  hsh = JSON.parse(File.read(path), symbolize_names: true)
42
- klass = record_classes.find { |c| c.type == hsh[:type] }
42
+ klass = record_classes.find { |c| c.type == hsh[:type].to_sym }
43
43
  klass.load!(session, hsh) if klass
44
44
  end
45
45
  end
@@ -38,11 +38,11 @@ module KBSecret
38
38
  @fields
39
39
  end
40
40
 
41
- # @return [String] the record's type
41
+ # @return [Symbol] the record's type
42
42
  # @example
43
- # KBSecret::Record::Abstract.type # => "abstract"
43
+ # KBSecret::Record::Abstract.type # => :abstract
44
44
  def type
45
- name.split("::").last.downcase
45
+ name.split("::").last.downcase.to_sym
46
46
  end
47
47
 
48
48
  # Load the given hash-representation into a record.
@@ -78,7 +78,7 @@ module KBSecret
78
78
  def initialize_from_hash(hsh)
79
79
  @timestamp = hsh[:timestamp]
80
80
  @label = hsh[:label]
81
- @type = hsh[:type]
81
+ @type = hsh[:type].to_sym
82
82
  @data = hsh[:data]
83
83
  end
84
84
 
@@ -8,8 +8,9 @@ module KBSecret
8
8
  # @return [Hash] the session-specific configuration, from
9
9
  # {Config::CONFIG_FILE}
10
10
  attr_reader :config
11
+
12
+ # @return [String] the fully-qualified path of the session
11
13
  attr_reader :directory
12
- attr_reader :records
13
14
 
14
15
  # @param label [Symbol] the label of the session to initialize
15
16
  # @note This does not *create* a new session, but loads one already
@@ -23,6 +24,16 @@ module KBSecret
23
24
  @records = load_records!
24
25
  end
25
26
 
27
+ # @param type [String, Symbol] the type of the records to return (or `nil` for all)
28
+ # @return [Array<Record::Abstract>] records associated with the session
29
+ def records(type = nil)
30
+ if type
31
+ @records.select { |r| r.type == type.to_sym }
32
+ else
33
+ @records
34
+ end
35
+ end
36
+
26
37
  # @return [Array<Symbol>] the labels of all records known to the session
27
38
  # @example
28
39
  # session.record_labels # => [:website1, :apikey1, :website2]
@@ -31,14 +42,14 @@ module KBSecret
31
42
  end
32
43
 
33
44
  # Add a record to the session.
34
- # @param type [String] the type of record (see {Record.record_types})
45
+ # @param type [String, Symbol] the type of record (see {Record.record_types})
35
46
  # @param label [Symbol] the new record's label
36
47
  # @param args [Array<String>] the record-type specific arguments
37
48
  # @return [void]
38
49
  # @raise RecordCreationArityError if the number of specified record
39
50
  # arguments does not match the record type's constructor
40
51
  def add_record(type, label, *args)
41
- klass = Record.record_classes.find { |k| k.type == type }
52
+ klass = Record.record_classes.find { |k| k.type == type.to_sym }
42
53
  arity = klass.instance_method(:initialize).arity - 2
43
54
 
44
55
  unless arity == args.size
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kbsecret
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
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-04-17 00:00:00.000000000 Z
11
+ date: 2017-05-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: keybase-unofficial
@@ -130,7 +130,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
130
130
  version: '0'
131
131
  requirements: []
132
132
  rubyforge_project:
133
- rubygems_version: 2.6.8
133
+ rubygems_version: 2.6.11
134
134
  signing_key:
135
135
  specification_version: 4
136
136
  summary: kbsecret - A KBFS (Keybase) backed secret manager.