Sha256: b09c257c8bbb2fb0fd965d6c4e79cca6e77327f5685e0b00d058a7fb8bf2d3e0
Contents?: true
Size: 1.15 KB
Versions: 2
Compression:
Stored size: 1.15 KB
Contents
require 'yaml' module Herodot class Configuration CONFIG_FILE = File.expand_path('~/.herodot.yml').freeze DEFAULT_CONFIGURATION = { 'projects_directory' => '~', 'work_times' => { 'work_start' => '9:30', 'lunch_break_start' => '13:00', 'lunch_break_end' => '13:30', 'work_end' => '18:00' } }.freeze def initialize(worklog_file = '~/.worklog') @worklog_file = worklog_file if File.exist?(CONFIG_FILE) @config = load_configuration else @config = DEFAULT_CONFIGURATION save_configuration end end def worklog_file File.expand_path(@worklog_file) end def projects_directory File.expand_path(@config['projects_directory'] || DEFAULT_CONFIGURATION['projects_directory']) end def work_times (@config['work_times'] || DEFAULT_CONFIGURATION['work_times']) .map { |k, v| [k.to_sym, v.split(':').map(&:to_i)] } end def save_configuration File.open(CONFIG_FILE, 'w') { |f| YAML.dump(@config, f) } end def load_configuration File.open(CONFIG_FILE) { |f| YAML.load(f) } end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
herodot-0.2.2 | lib/herodot/configuration.rb |
herodot-0.2.1 | lib/herodot/configuration.rb |