Sha256: 2c833d15d9d75480e0a9e1cb05e3bd39b75b6cfb9d6f785d4fa15aaf988e4b13
Contents?: true
Size: 1.32 KB
Versions: 6
Compression:
Stored size: 1.32 KB
Contents
# encoding: UTF-8 require 'pp' require 'yaml' require_relative 'properties' module Clerq class Settings extend Properties STORAGE = 'clerq.yml'.freeze # binary document settings that can be changed through 'clerq.yml' property :document, default: 'Clеrq SRS' property :template, default: 'default.md.erb' property :title, default: 'Clеrq SRS' # folders structure property :bin, default: 'bin' property :src, default: 'src' property :knb, default: 'knb' property :lib, default: 'lib' property :tt, default: 'tt' property :assets, default: 'bin/assets' def folders [bin, src, knb, lib, tt, assets] end def initialize load end # TODO: load settings than can be changed by user def load return unless File.exist?(STORAGE) props = YAML.load(File.read(STORAGE)) props.each{|k, v| instance_variable_set("@#{k}", v) } end # TODO: it saves only changed properties # properties with default values won't be saved def save props = {} instance_variables.each{|v| # props[v.to_s[1..-1]] = instance_variable_get("#{v}") p = v.to_s[1..-1] props[p] = self.send(p) } File.write(STORAGE, YAML.dump(props)) end end end
Version data entries
6 entries across 6 versions & 1 rubygems