Class: Quality::Config
- Inherits:
-
Object
- Object
- Quality::Config
- Defined in:
- lib/quality/rake/config.rb
Overview
Configuration for running quality tool
Instance Attribute Summary collapse
-
#extra_files ⇒ Object
Pick any extra files that are source files, but may not have extensions–defaults to %w(Rakefile Dockerfile).
-
#extra_ruby_files ⇒ Object
Pick any extra files that are Ruby source files, but may not have extensions–defaults to %w(Rakefile).
-
#output_dir ⇒ Object
Relative path to output directory where *_high_water_mark files will be read/written.
-
#punchlist_regexp ⇒ Object
Pipe-separated regexp string describing what to look for in files as ‘todo’-like ‘punchlist’ comments.
-
#quality_name ⇒ Object
Name of quality task.
-
#ratchet_name ⇒ Object
Name of ratchet task.
- #ruby_dirs ⇒ Object
-
#ruby_file_extensions ⇒ Object
Extensions for Ruby language files–defaults to ‘rb,rake’.
-
#skip_tools ⇒ Object
Array of strings describing tools to be skipped–e.g., [“cane”].
- #source_dirs ⇒ Object
-
#source_file_extensions ⇒ Object
Extensions for all source files–defaults to ‘rb,rake,swift,cpp,c,java,py,clj,cljs,scala,js,yml,sh,json’.
-
#verbose ⇒ Object
Log command executation.
Instance Method Summary collapse
-
#initialize(quality_name: 'quality', ratchet_name: 'ratchet', globber: fail) ⇒ Config
constructor
A new instance of Config.
-
#ruby_files ⇒ Object
XXX: Rakefile is hard-coded here–should use config instead.
- #ruby_files_glob ⇒ Object
- #source_files_glob(extra_source_files = extra_files, dirs = source_dirs, extensions = source_file_extensions) ⇒ Object
Constructor Details
#initialize(quality_name: 'quality', ratchet_name: 'ratchet', globber: fail) ⇒ Config
Returns a new instance of Config.
113 114 115 116 117 118 119 120 121 122 |
# File 'lib/quality/rake/config.rb', line 113 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_files ⇒ Object
Pick any extra files that are source files, but may not have extensions–defaults to %w(Rakefile Dockerfile)
41 42 43 |
# File 'lib/quality/rake/config.rb', line 41 def extra_files @extra_files end |
#extra_ruby_files ⇒ Object
Pick any extra files that are Ruby source files, but may not have extensions–defaults to %w(Rakefile)
45 46 47 |
# File 'lib/quality/rake/config.rb', line 45 def extra_ruby_files @extra_ruby_files end |
#output_dir ⇒ Object
Relative path to output directory where *_high_water_mark files will be read/written
Defaults to .
64 65 66 |
# File 'lib/quality/rake/config.rb', line 64 def output_dir @output_dir end |
#punchlist_regexp ⇒ Object
Pipe-separated regexp string describing what to look for in files as ‘todo’-like ‘punchlist’ comments.
Defaults to ‘XXX|TODO’
58 59 60 |
# File 'lib/quality/rake/config.rb', line 58 def punchlist_regexp @punchlist_regexp end |
#quality_name ⇒ Object
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_name ⇒ Object
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_dirs ⇒ Object
66 67 68 |
# File 'lib/quality/rake/config.rb', line 66 def ruby_dirs @ruby_dirs ||= %w(src app lib test spec feature) end |
#ruby_file_extensions ⇒ Object
Extensions for Ruby language files–defaults to ‘rb,rake’
48 49 50 |
# File 'lib/quality/rake/config.rb', line 48 def ruby_file_extensions @ruby_file_extensions end |
#skip_tools ⇒ Object
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_dirs ⇒ Object
70 71 72 |
# File 'lib/quality/rake/config.rb', line 70 def source_dirs @source_dirs ||= ruby_dirs.clone end |
#source_file_extensions ⇒ Object
Extensions for all source files–defaults to ‘rb,rake,swift,cpp,c,java,py,clj,cljs,scala,js,yml,sh,json’
52 53 54 |
# File 'lib/quality/rake/config.rb', line 52 def source_file_extensions @source_file_extensions end |
#verbose ⇒ Object
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_files ⇒ Object
XXX: Rakefile is hard-coded here–should use config instead
108 109 110 111 |
# File 'lib/quality/rake/config.rb', line 108 def ruby_files @globber.glob("{*.{#{ruby_file_extensions}},Rakefile}") .concat(@globber.glob(ruby_files_glob)).join(' ') end |
#ruby_files_glob ⇒ Object
103 104 105 |
# File 'lib/quality/rake/config.rb', line 103 def ruby_files_glob source_files_glob(extra_ruby_files, ruby_dirs, ruby_file_extensions) end |
#source_files_glob(extra_source_files = extra_files, dirs = source_dirs, extensions = source_file_extensions) ⇒ Object
88 89 90 91 92 93 94 95 96 97 |
# File 'lib/quality/rake/config.rb', line 88 def source_files_glob(extra_source_files = extra_files, dirs = source_dirs, extensions = source_file_extensions) "{#{extra_source_files.join(',')}," + "*.{#{extensions}}," + File.join("{#{dirs.join(',')}}", '**', "*.{#{extensions}}") + '}' end |