Class: Keystorage::Manager
- Inherits:
-
Object
- Object
- Keystorage::Manager
show all
- Includes:
- Keystorage
- Defined in:
- lib/keystorage/manager.rb
Overview
ks = keystorage::Manager.new(:file =>“”,:secret=> “P@ssword”) ks.get(“mygroup”,“mykey”) # => “mysecret”
Constant Summary
Constants included
from Keystorage
DEFAULT_FILE, DEFAULT_SECRET
Instance Attribute Summary collapse
Instance Method Summary
collapse
Methods included from Keystorage
#render, #render_text
Constructor Details
#initialize(options = {}) ⇒ Manager
Returns a new instance of Manager.
9
10
11
|
# File 'lib/keystorage/manager.rb', line 9
def initialize options = {}
@options = options
end
|
Instance Attribute Details
#options ⇒ Object
Returns the value of attribute options.
8
9
10
|
# File 'lib/keystorage/manager.rb', line 8
def options
@options
end
|
Instance Method Details
#exec(*cmd) ⇒ Object
59
60
61
62
|
# File 'lib/keystorage/manager.rb', line 59
def exec *cmd
raise SecretMissMatch unless valid?
system(envs.collect{ |k,v| "#{k}='#{v}'" }.join(' ') + " " + cmd.join(' '))
end
|
#get(group, key) ⇒ Object
21
22
23
24
|
# File 'lib/keystorage/manager.rb', line 21
def get(group,key)
raise SecretMissMatch unless valid?
decode(file[group][key])
end
|
#groups ⇒ Object
13
14
15
|
# File 'lib/keystorage/manager.rb', line 13
def groups
file.keys.delete_if {|i| i == "@" }
end
|
#keys(group) ⇒ Object
17
18
19
|
# File 'lib/keystorage/manager.rb', line 17
def keys(group)
file[group].keys
end
|
#password(new_secret) ⇒ Object
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
# File 'lib/keystorage/manager.rb', line 42
def password new_secret
raise SecretMissMatch unless valid?
data = file.each { |name,keys|
next if name == "@"
keys.each { |key,value|
keys[key] = encode(decode(value),new_secret)
}
}
write root!(new_secret,data)
rescue Errno::ENOENT
write({})
retry
end
|
#set(group, key, value) ⇒ Object
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
# File 'lib/keystorage/manager.rb', line 26
def set(group,key,value)
raise RejectGroupName.new("Cannot use '@' for group name.") if group == "@"
raise SecretMissMatch unless valid?
data = file
data[group] = {} unless data.has_key?(group)
data[group][key] = {} unless data[group].has_key?(key)
data[group][key] = encode(value)
write(data)
data[group][key]
rescue Errno::ENOENT
write({})
retry
end
|