Class: CodeStats::Metrics::Reporter::ConfigLoader
- Inherits:
-
Object
- Object
- CodeStats::Metrics::Reporter::ConfigLoader
- Defined in:
- lib/code_stats/metrics/reporter/config_loader.rb
Constant Summary collapse
- FILE_NAME =
'.codestats.yml'.freeze
- CODE_STATS_HOME =
File.realpath(File.join(File.dirname(__FILE__), '..', '..', '..', '..'))
- DEFAULT_FILE =
File.join(CODE_STATS_HOME, 'config', 'default.yml')
Class Method Summary collapse
- .load_default_file ⇒ Object
- .load_default_metrics_configs(metrics) ⇒ Object
- .load_file ⇒ Object
- .load_user_file ⇒ Object
- .load_user_metrics_configs(user_metrics) ⇒ Object
- .load_yml_file(path) ⇒ Object
- .metric_enabled?(user_metric_data) ⇒ Boolean
Class Method Details
.load_default_file ⇒ Object
19 20 21 22 23 24 |
# File 'lib/code_stats/metrics/reporter/config_loader.rb', line 19 def load_default_file default_file = load_yml_file(DEFAULT_FILE) return if default_file.nil? @default_data = default_file['config'].merge(metrics_configs: []) load_default_metrics_configs(default_file['metrics']) end |
.load_default_metrics_configs(metrics) ⇒ Object
40 41 42 43 44 45 46 |
# File 'lib/code_stats/metrics/reporter/config_loader.rb', line 40 def load_default_metrics_configs(metrics) metrics.each do |metric, metric_data| @default_data[:metrics_configs] << MetricConfig.new( metric_data.merge('metric' => metric) ) end end |
.load_file ⇒ Object
13 14 15 16 17 |
# File 'lib/code_stats/metrics/reporter/config_loader.rb', line 13 def load_file load_default_file load_user_file @user_data || @default_data end |
.load_user_file ⇒ Object
26 27 28 29 30 31 32 |
# File 'lib/code_stats/metrics/reporter/config_loader.rb', line 26 def load_user_file user_file = load_yml_file(File.realpath(FILE_NAME)) return if user_file.nil? @user_data = @default_data.merge(user_file['config']) @user_data[:metrics_configs] = [] load_user_metrics_configs(user_file['metrics']) unless user_file['metrics'].nil? end |
.load_user_metrics_configs(user_metrics) ⇒ Object
48 49 50 51 52 53 54 55 56 |
# File 'lib/code_stats/metrics/reporter/config_loader.rb', line 48 def load_user_metrics_configs(user_metrics) @default_data[:metrics_configs].each do |metric_default_config| user_metric_data = user_metrics[metric_default_config.data['metric']] next unless metric_enabled?(user_metric_data) @user_data[:metrics_configs] << MetricConfig.new( metric_default_config.data.merge(user_metric_data) ) end end |
.load_yml_file(path) ⇒ Object
34 35 36 37 38 |
# File 'lib/code_stats/metrics/reporter/config_loader.rb', line 34 def load_yml_file(path) return unless File.exist?(path) yaml_code = IO.read(path, encoding: 'UTF-8') YAML.load(ERB.new(yaml_code).result) end |
.metric_enabled?(user_metric_data) ⇒ Boolean
58 59 60 |
# File 'lib/code_stats/metrics/reporter/config_loader.rb', line 58 def metric_enabled?(user_metric_data) !user_metric_data.nil? && user_metric_data['enabled'] end |