Class: Quality::Config

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

Overview

Configuration for running quality tool

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(quality_name: 'quality', ratchet_name: 'ratchet', globber: fail) ⇒ Config

Returns a new instance of Config.



84
85
86
87
88
89
90
91
92
93
# File 'lib/quality/rake/config.rb', line 84

def initialize(quality_name: 'quality',
               ratchet_name: 'ratchet',
               globber: fail)
  @quality_name = quality_name
  @ratchet_name = ratchet_name
  @skip_tools = []
  @output_dir = 'metrics'
  @verbose = false
  @globber = globber
end

Instance Attribute Details

#extra_filesObject

Pick any extra files that are source files, but may not have extensions–defaults to [‘Rakefile’]



41
42
43
# File 'lib/quality/rake/config.rb', line 41

def extra_files
  @extra_files
end

#output_dirObject

Relative path to output directory where *_high_water_mark files will be read/written

Defaults to .



47
48
49
# File 'lib/quality/rake/config.rb', line 47

def output_dir
  @output_dir
end

#quality_nameObject

Name of quality task. Defaults to :quality.



11
12
13
# File 'lib/quality/rake/config.rb', line 11

def quality_name
  @quality_name
end

#ratchet_nameObject

Name of ratchet task. Defaults to :ratchet.



15
16
17
# File 'lib/quality/rake/config.rb', line 15

def ratchet_name
  @ratchet_name
end

#ruby_dirsObject



49
50
51
# File 'lib/quality/rake/config.rb', line 49

def ruby_dirs
  @ruby_dirs ||= %w(src app lib test spec feature)
end

#skip_toolsObject

Array of strings describing tools to be skipped–e.g., [“cane”]

Defaults to []



20
21
22
# File 'lib/quality/rake/config.rb', line 20

def skip_tools
  @skip_tools
end

#source_dirsObject



53
54
55
# File 'lib/quality/rake/config.rb', line 53

def source_dirs
  @source_dirs ||= ruby_dirs.clone
end

#verboseObject

Log command executation

Defaults to false



25
26
27
# File 'lib/quality/rake/config.rb', line 25

def verbose
  @verbose
end

Instance Method Details

#ruby_file_extensionsObject



71
72
73
# File 'lib/quality/rake/config.rb', line 71

def ruby_file_extensions
  'rb,rake'
end

#ruby_filesObject



79
80
81
82
# File 'lib/quality/rake/config.rb', line 79

def ruby_files
  @globber.glob("{*.{#{ruby_file_extensions}},Rakefile}")
    .concat(@globber.glob(ruby_files_glob)).join(' ')
end

#ruby_files_globObject



75
76
77
# File 'lib/quality/rake/config.rb', line 75

def ruby_files_glob
  source_files_glob(ruby_dirs, ruby_file_extensions)
end

#source_file_extensionsObject



61
62
63
# File 'lib/quality/rake/config.rb', line 61

def source_file_extensions
  "#{ruby_file_extensions},swift,cpp,c,java,py,clj,cljs,scala,js"
end

#source_files_glob(dirs = source_dirs, extensions = source_file_extensions) ⇒ Object



65
66
67
68
69
# File 'lib/quality/rake/config.rb', line 65

def source_files_glob(dirs = source_dirs,
                      extensions = source_file_extensions)
  File.join("{#{dirs.join(',')}}", '**',
            "{#{extra_files.join(',')},*.{#{extensions}}}")
end