Module: Timetrap::Config

Extended by:
Config
Included in:
Config
Defined in:
lib/timetrap/config.rb

Constant Summary collapse

PATH =
ENV['TIMETRAP_CONFIG_FILE'] || File.join(ENV['HOME'], '.timetrap.yml')

Instance Method Summary collapse

Instance Method Details

#[](key) ⇒ Object



21
22
23
24
25
26
27
28
# File 'lib/timetrap/config.rb', line 21

def [](key)
  overrides = File.exist?(PATH) ? YAML.load(File.read(PATH)) : {}
  defaults.merge(overrides)[key]
rescue => e
  puts "invalid config file"
  puts e.message
  defaults[key]
end

#configure!Object



30
31
32
33
34
35
36
# File 'lib/timetrap/config.rb', line 30

def configure!
  unless File.exist?(PATH)
    File.open(PATH, 'w') do |fh|
      fh.puts(defaults.to_yaml)
    end
  end
end

#defaultsObject

Application defaults.

These are written to a config file by invoking: t configure



12
13
14
15
16
17
18
19
# File 'lib/timetrap/config.rb', line 12

def defaults
  {
    # Path to the sqlite db
    'database_file' => "#{ENV['HOME']}/.timetrap.db",
    # Unit of time for rounding (-r) in seconds
    'round_in_seconds' => 900
  }
end