Module: TerUtil::Remember
- Defined in:
- lib/remember.rb
Constant Summary collapse
- FPATH =
File.("terutil", ENV['XDG_CONFIG_HOME'] || "~/.config")
- FNAME =
FPATH + '/remember.json'
Class Method Summary collapse
- .delete(key) ⇒ Object
- .load_data ⇒ Object
- .load_file ⇒ Object
- .read(key) ⇒ Object
- .reset_file ⇒ Object
- .write(key, val, silent = true) ⇒ Object
- .write_data(data) ⇒ Object
Class Method Details
.delete(key) ⇒ Object
56 57 58 |
# File 'lib/remember.rb', line 56 def self.delete(key) write_data load_data.reject { |k| k == key } end |
.load_data ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/remember.rb', line 21 def self.load_data ret = JSON.parse load_file raise JSON::ParserError if ret.class != Hash ret rescue JSON::ParserError puts "The remember data file (#{FNAME}) is corrupted." puts "Please fix it manually or reset it." print "Reset (ALL DATA WILL BE LOST!)? (y/n): " if ['y', 'yes'].include? gets.chomp reset_file puts "File reset." end end |
.load_file ⇒ Object
12 13 14 15 16 17 18 19 |
# File 'lib/remember.rb', line 12 def self.load_file if !File.exists? FNAME FileUtils.mkdir_p FPATH reset_file end File.read(FNAME) end |
.read(key) ⇒ Object
42 43 44 |
# File 'lib/remember.rb', line 42 def self.read(key) load_data[key] end |
.reset_file ⇒ Object
8 9 10 |
# File 'lib/remember.rb', line 8 def self.reset_file File.open(FNAME, 'w') { |f| f.write "{}" } end |
.write(key, val, silent = true) ⇒ Object
46 47 48 49 50 51 52 53 54 |
# File 'lib/remember.rb', line 46 def self.write(key, val, silent=true) if val == '' delete key puts "Deleted #{key}." if !silent else write_data load_data.tap { |d| d[key] = val } puts "Set #{key} to #{val}." if !silent end end |
.write_data(data) ⇒ Object
38 39 40 |
# File 'lib/remember.rb', line 38 def self.write_data(data) File.open(FNAME, 'w') { |f| f.write JSON.generate(data) } end |