Class: Tome::Tome
- Inherits:
-
Object
- Object
- Tome::Tome
- Defined in:
- lib/tome/tome.rb
Class Method Summary collapse
- .create!(tome_filename, master_password, stretch = 100_000) ⇒ Object
- .exists?(tome_filename) ⇒ Boolean
Instance Method Summary collapse
- #delete(id) ⇒ Object
- #each_password ⇒ Object
- #find(pattern) ⇒ Object
- #get(id) ⇒ Object
-
#initialize(tome_filename, master_password) ⇒ Tome
constructor
A new instance of Tome.
- #master_password=(master_password) ⇒ Object
- #rename(old_id, new_id) ⇒ Object
- #set(id, password) ⇒ Object
Constructor Details
#initialize(tome_filename, master_password) ⇒ Tome
Returns a new instance of Tome.
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/tome/tome.rb', line 29 def initialize(tome_filename, master_password) if tome_filename.nil? || tome_filename.empty? raise ArgumentError end if master_password.nil? || master_password.empty? raise MasterPasswordError end @tome_filename = tome_filename @master_password = master_password # TODO: This is suboptimal. We are loading the store # twice for most operations because of this authentication. authenticate() end |
Class Method Details
.create!(tome_filename, master_password, stretch = 100_000) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/tome/tome.rb', line 16 def self.create!(tome_filename, master_password, stretch = 100_000) if tome_filename.nil? || tome_filename.empty? raise ArgumentError end if master_password.nil? || master_password.empty? raise MasterPasswordError end save_tome(tome_filename, new_tome(stretch), {}, master_password) return Tome.new(tome_filename, master_password) end |
.exists?(tome_filename) ⇒ Boolean
12 13 14 |
# File 'lib/tome/tome.rb', line 12 def self.exists?(tome_filename) return !load_tome(tome_filename).nil? end |
Instance Method Details
#delete(id) ⇒ Object
76 77 78 79 80 81 82 83 84 |
# File 'lib/tome/tome.rb', line 76 def delete(id) if id.nil? || id.empty? raise ArgumentError end return writable_store do |store| delete_by_id(store, id) end end |
#each_password ⇒ Object
96 97 98 99 100 101 102 103 104 105 106 |
# File 'lib/tome/tome.rb', line 96 def each_password if !block_given? raise ArgumentError end readable_store do |store| store.each { |id, info| yield id, info[:password] } end end |
#find(pattern) ⇒ Object
66 67 68 69 70 71 72 73 74 |
# File 'lib/tome/tome.rb', line 66 def find(pattern) if pattern.nil? || pattern.empty? raise ArgumentError end return readable_store do |store| get_by_pattern(store, pattern) end end |
#get(id) ⇒ Object
56 57 58 59 60 61 62 63 64 |
# File 'lib/tome/tome.rb', line 56 def get(id) if id.nil? || id.empty? raise ArgumentError end return readable_store do |store| get_by_id(store, id) end end |
#master_password=(master_password) ⇒ Object
108 109 110 111 112 113 |
# File 'lib/tome/tome.rb', line 108 def master_password=(master_password) return writable_store do |store| @master_password = master_password true end end |
#rename(old_id, new_id) ⇒ Object
86 87 88 89 90 91 92 93 94 |
# File 'lib/tome/tome.rb', line 86 def rename(old_id, new_id) if old_id.nil? || old_id.empty? || new_id.nil? || new_id.empty? raise ArgumentError end return writable_store do |store| rename_by_id(store, old_id, new_id) end end |
#set(id, password) ⇒ Object
46 47 48 49 50 51 52 53 54 |
# File 'lib/tome/tome.rb', line 46 def set(id, password) if id.nil? || id.empty? || password.nil? || password.empty? raise ArgumentError end return writable_store do |store| set_by_id(store, id, password) end end |