Class: Coco::Configuration

Inherits:
Hash
  • Object
show all
Defined in:
lib/coco/configuration.rb

Overview

Public: I know the configuration of coco. You can override the default configuration by putting a '.coco.yml' file in YAML format in the project root directory.

Examples

# Read the threshold value
config = Configuration.new
config[:threshold]
# => 100

# To override the threshold, put this line in '.coco.yml' file:
# :threshold: 70

Note you can set the threshold above 100% (to be sure to see all files) but you cannot set it under 0.

Instance Method Summary collapse

Constructor Details

#initializeConfiguration

Public: Initialize a Configuration.



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/coco/configuration.rb', line 26

def initialize
  self[:threshold] = 100
  self[:directories] = ['lib']
  self[:excludes] = []
  self[:single_line_report] = false
  self[:always_run] = true
  self[:show_link_in_terminal] = false
  self[:exclude_above_threshold] = true
  if File.exist?('.coco.yml')
    self.merge!(YAML.load_file('.coco.yml'))
  # Deprecated: Support of '.coco' file will be removed in v1.0.
  elsif File.exist?('.coco')
    warn('Please use `.coco.yml` instead of `.coco`.')
    warn('Support for `.coco` will be removed in future versions.')
    self.merge!(YAML.load_file('.coco'))
  end

  ensure_threeshold_compatibility
  expand_directories
  remove_directories
end

Instance Method Details

#user_wants_to_run?Boolean

Public: Code coverage not have to run with every test/spec runs.

Here are the rules: If the configuration key :always_run is set to true, we always run the coverage. In case the configuration key :always_run is set to false, we have to check for an environement variable named 'COCO' to decide if we launch the coverage or not. When 'COCO' doesn't exist, or is the empty string, or '0', or 'false', we don't run coverage. When 'COCO' is set to any other value, we start coverage.

Returns true if coverage should start.

Returns:

  • (Boolean)


60
61
62
63
64
65
66
# File 'lib/coco/configuration.rb', line 60

def user_wants_to_run?
  if self[:always_run]
    true
  else
    ![nil, '', '0', 'false'].include?(ENV['COCO'])
  end
end