class BooticCli::Store
Constants
- DEFAULT_NAMESPACE
- DIRNAME
- FILE_NAME
- VERSION
Attributes
base_dir[R]
namespace[R]
Public Class Methods
new(base_dir: ENV['HOME'], dir: DIRNAME, namespace: DEFAULT_NAMESPACE)
click to toggle source
# File lib/bootic_cli/store.rb, line 12 def initialize(base_dir: ENV['HOME'], dir: DIRNAME, namespace: DEFAULT_NAMESPACE) @base_dir = File.join(base_dir, dir) @namespace = namespace FileUtils.mkdir_p @base_dir end
Public Instance Methods
[](k)
click to toggle source
# File lib/bootic_cli/store.rb, line 24 def [](k) hash = store[namespace] || {} hash[k] end
[]=(k, v)
click to toggle source
# File lib/bootic_cli/store.rb, line 18 def []=(k, v) hash = store[namespace] || {} hash[k] = v store[namespace] = hash end
erase()
click to toggle source
# File lib/bootic_cli/store.rb, line 33 def erase FileUtils.rm_rf base_dir end
needs_upgrade?()
click to toggle source
# File lib/bootic_cli/store.rb, line 37 def needs_upgrade? transaction do store['version'].to_i < VERSION end end
transaction(&block)
click to toggle source
# File lib/bootic_cli/store.rb, line 29 def transaction(&block) store.transaction(&block) end
upgrade!()
click to toggle source
# File lib/bootic_cli/store.rb, line 43 def upgrade! return unless needs_upgrade? transaction do current_values = {} store.roots.each do |r| v = store[r] store.delete(r) current_values[r] = v end current_values.each do |k, v| self[k] = v end store['version'] = VERSION end end
Private Instance Methods
store()
click to toggle source
# File lib/bootic_cli/store.rb, line 66 def store @store ||= PStore.new(File.join(base_dir, FILE_NAME)) end