class BasicDiskSettings

Public Class Methods

new(&block) click to toggle source
# File lib/rsettings/adapters/basic_disk_settings.rb, line 6
def initialize(&block)
  @file = ".rsettings"
  _ensure
  instance_eval &block if block_given?
end

Public Instance Methods

clear() click to toggle source
# File lib/rsettings/adapters/basic_disk_settings.rb, line 12
def clear
  rm file if exists?
end
file() click to toggle source
# File lib/rsettings/adapters/basic_disk_settings.rb, line 30
def file; @file; end
get(name) click to toggle source
# File lib/rsettings/adapters/basic_disk_settings.rb, line 26
def get(name)
  Setting.new(settings[name.value]).tap{|result| notify_missing name if result.missing?}
end
set(opts ={}) click to toggle source
# File lib/rsettings/adapters/basic_disk_settings.rb, line 16
def set(opts ={})
  opts = all.merge opts

  File.open file, "w+" do |io|
    io.puts opts.to_yaml
  end 

  notify :set, @settings
end

Private Instance Methods

_ensure() click to toggle source
# File lib/rsettings/adapters/basic_disk_settings.rb, line 48
def _ensure
  touch file
end
all() click to toggle source
# File lib/rsettings/adapters/basic_disk_settings.rb, line 36
def all
  return {} unless exists?

  YAML.load(IO.read(file)) || {}
end
exists?() click to toggle source
# File lib/rsettings/adapters/basic_disk_settings.rb, line 46
def exists?; File.exists? file; end
notify_missing(name) click to toggle source
# File lib/rsettings/adapters/basic_disk_settings.rb, line 42
def notify_missing(name)
  notify :missing, name
end
settings() click to toggle source
# File lib/rsettings/adapters/basic_disk_settings.rb, line 34
def settings; @settings ||= all; end