Class: TimetrapHarvest::Config

Inherits:
Object
  • Object
show all
Defined in:
lib/timetrap_harvest/config.rb

Constant Summary collapse

MissingHarvestConfig =
Class.new(StandardError)
MissingHarvestAliases =
Class.new(StandardError)
MissingHarvestSubdomain =
Class.new(StandardError)
DEFAULT_ROUND_IN_MINUTES =
15

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(timetrap_config = Timetrap::Config) ⇒ Config

Returns a new instance of Config.



9
10
11
# File 'lib/timetrap_harvest/config.rb', line 9

def initialize(timetrap_config = Timetrap::Config)
  @timetrap_config = timetrap_config
end

Instance Attribute Details

#timetrap_configObject (readonly)

Returns the value of attribute timetrap_config.



7
8
9
# File 'lib/timetrap_harvest/config.rb', line 7

def timetrap_config
  @timetrap_config
end

Instance Method Details

#alias_config(code) ⇒ Object



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

def alias_config(code)
  if config = aliases[code]
    config = config.split(' ')

    { project_id: config.first, task_id: config.last }
  end
end

#aliasesObject



39
40
41
42
43
# File 'lib/timetrap_harvest/config.rb', line 39

def aliases
  ensure_aliases!

  config['aliases']
end

#configObject



45
46
47
48
49
# File 'lib/timetrap_harvest/config.rb', line 45

def config
  ensure_config!

  timetrap_config['harvest']
end

#emailObject



13
14
15
# File 'lib/timetrap_harvest/config.rb', line 13

def email
  config['email']
end

#ensure_aliases!Object



55
56
57
# File 'lib/timetrap_harvest/config.rb', line 55

def ensure_aliases!
  fail(MissingHarvestAliases, 'Missing aliases key in .timetrap.yml config file') if config['aliases'].nil?
end

#ensure_config!Object



51
52
53
# File 'lib/timetrap_harvest/config.rb', line 51

def ensure_config!
  fail(MissingHarvestConfig, 'Missing harvest key in .timetrap.yml config file') if timetrap_config.nil? || timetrap_config['harvest'].nil?
end

#ensure_subdomain!Object



59
60
61
# File 'lib/timetrap_harvest/config.rb', line 59

def ensure_subdomain!
  fail(MissingHarvestSubdomain, 'Missing subdomain key in .timetrap.yml config file') if config['subdomain'].nil?
end

#passwordObject



17
18
19
# File 'lib/timetrap_harvest/config.rb', line 17

def password
  config['password']
end

#round_in_minutesObject



27
28
29
# File 'lib/timetrap_harvest/config.rb', line 27

def round_in_minutes
  config['round_in_minutes'] || DEFAULT_ROUND_IN_MINUTES
end

#subdomainObject



21
22
23
24
25
# File 'lib/timetrap_harvest/config.rb', line 21

def subdomain
  ensure_subdomain!

  config['subdomain']
end