class GeneralStore
Constants
- VERSION
Attributes
config[RW]
dir[RW]
Public Class Methods
config_dir(dir)
click to toggle source
# File lib/general_store.rb, line 42 def self.config_dir dir File.expand_path dir end
config_file(dir_name)
click to toggle source
# File lib/general_store.rb, line 38 def self.config_file dir_name File.expand_path File.join dir_name, "config.yml" end
create(dir, ostruct = OpenStruct.new) { |ostruct| ... }
click to toggle source
# File lib/general_store.rb, line 14 def self.create dir, ostruct = OpenStruct.new create_config_file dir yield ostruct new(ostruct.marshal_dump, dir).set end
create_config_file(dir)
click to toggle source
# File lib/general_store.rb, line 46 def self.create_config_file dir ensure_dir_existence dir ensure_file_existence dir end
ensure_dir_existence(dir)
click to toggle source
# File lib/general_store.rb, line 57 def self.ensure_dir_existence dir FileUtils.mkdir_p config_dir dir end
ensure_file_existence(dir)
click to toggle source
# File lib/general_store.rb, line 61 def self.ensure_file_existence dir file = config_file dir unless File.exists? file write_file file, {} end end
read(dir_name)
click to toggle source
# File lib/general_store.rb, line 8 def self.read dir_name new YAML.load_file(config_file(dir_name)), dir_name rescue Errno::ENOENT puts 'You need to setup your General Store first!' end
write_file(file, data)
click to toggle source
# File lib/general_store.rb, line 51 def self.write_file file, data File.open file, File::RDWR|File::TRUNC|File::CREAT, 0600 do |config| config.write YAML.dump data end end
Private Class Methods
new(config_contents, dir)
click to toggle source
# File lib/general_store.rb, line 25 def initialize config_contents, dir self.config = config_contents self.dir = dir config.each do |k,v| accessor = k.to_sym self.class.class_eval do attr_accessor accessor end send("#{accessor}=", v) end end
Public Instance Methods
set()
click to toggle source
# File lib/general_store.rb, line 20 def set klass = self.class klass.write_file klass.config_file(dir), config end