class MinitestBender::Configuration
Constants
- DEFAULT_CONFIG
Attributes
client_config[R]
options_config[R]
Public Class Methods
new()
click to toggle source
# File lib/minitest-bender/configuration.rb, line 15 def initialize @client_config = {} @options_config = {} end
Public Instance Methods
add_client_config(config)
click to toggle source
# File lib/minitest-bender/configuration.rb, line 20 def add_client_config(config) validate_config(config) client_config.merge!(config) end
backtrace_view()
click to toggle source
# File lib/minitest-bender/configuration.rb, line 82 def backtrace_view final_config.fetch(:backtrace_view) end
backtrace_view=(backtrace_view)
click to toggle source
# File lib/minitest-bender/configuration.rb, line 49 def backtrace_view=(backtrace_view) options_config[:backtrace_view] = backtrace_view end
cooperative?()
click to toggle source
# File lib/minitest-bender/configuration.rb, line 62 def cooperative? final_config.fetch(:mode) == :cooperative end
custom_colors()
click to toggle source
# File lib/minitest-bender/configuration.rb, line 90 def custom_colors final_config.fetch(:custom_colors) end
mode=(mode)
click to toggle source
# File lib/minitest-bender/configuration.rb, line 25 def mode=(mode) options_config[:mode] = mode end
overview_sort_key()
click to toggle source
# File lib/minitest-bender/configuration.rb, line 74 def overview_sort_key final_config.fetch(:overview_sort_key) end
overview_sort_key=(overview_sort_key)
click to toggle source
# File lib/minitest-bender/configuration.rb, line 41 def overview_sort_key=(overview_sort_key) options_config[:overview_sort_key] = overview_sort_key end
recorder()
click to toggle source
# File lib/minitest-bender/configuration.rb, line 66 def recorder final_config.fetch(:recorder) end
recorder=(recorder)
click to toggle source
# File lib/minitest-bender/configuration.rb, line 29 def recorder=(recorder) options_config[:recorder] = recorder end
rerun_command_stem()
click to toggle source
# File lib/minitest-bender/configuration.rb, line 86 def rerun_command_stem final_config.fetch(:rerun_command_stem) end
rerun_command_stem=(rerun_command_stem)
click to toggle source
# File lib/minitest-bender/configuration.rb, line 53 def rerun_command_stem=(rerun_command_stem) options_config[:rerun_command_stem] = rerun_command_stem end
sections()
click to toggle source
# File lib/minitest-bender/configuration.rb, line 70 def sections sections_whitelist - sections_blacklist end
sections=(sections)
click to toggle source
# File lib/minitest-bender/configuration.rb, line 33 def sections=(sections) options_config[:sections] = sections end
sections_blacklist=(sections_blacklist)
click to toggle source
# File lib/minitest-bender/configuration.rb, line 37 def sections_blacklist=(sections_blacklist) options_config[:sections_blacklist] = sections_blacklist end
set_custom_color(color_key, color)
click to toggle source
# File lib/minitest-bender/configuration.rb, line 57 def set_custom_color(color_key, color) options_config[:custom_colors] ||= {} options_config[:custom_colors][color_key] = color end
time_ranking_size()
click to toggle source
# File lib/minitest-bender/configuration.rb, line 78 def time_ranking_size final_config.fetch(:time_ranking_size) end
time_ranking_size=(time_ranking_size)
click to toggle source
# File lib/minitest-bender/configuration.rb, line 45 def time_ranking_size=(time_ranking_size) options_config[:time_ranking_size] = time_ranking_size end
Private Instance Methods
custom_colors_env_config()
click to toggle source
# File lib/minitest-bender/configuration.rb, line 134 def custom_colors_env_config Colorizer.color_keys.each_with_object({}) do |color_key, h| h[color_key] = ENV["BENDER_#{color_key.upcase}_COLOR"] end end
default_config()
click to toggle source
# File lib/minitest-bender/configuration.rb, line 116 def default_config DEFAULT_CONFIG end
env_config()
click to toggle source
# File lib/minitest-bender/configuration.rb, line 120 def env_config { mode: ENV['BENDER_MODE'], recorder: ENV['BENDER_RECORDER'], sections: ENV['BENDER_SECTIONS'], sections_blacklist: ENV['BENDER_SECTIONS_BLACKLIST'], overview_sort_key: ENV['BENDER_OVERVIEW_SORT_KEY'], time_ranking_size: ENV['BENDER_TIME_RANKING_SIZE'], backtrace_view: ENV['BENDER_BACKTRACE_VIEW'], rerun_command_stem: ENV['BENDER_RERUN_COMMAND_STEM'], custom_colors: custom_colors_env_config } end
final_config()
click to toggle source
# File lib/minitest-bender/configuration.rb, line 153 def final_config merged_config.tap do |config| config[:mode] = config[:mode].to_sym config[:recorder] = config[:recorder].to_sym config[:sections] = parsed_list(config[:sections]) config[:sections_blacklist] = parsed_list(config[:sections_blacklist]) config[:overview_sort_key] = config[:overview_sort_key].to_sym config[:time_ranking_size] = config[:time_ranking_size].to_i config[:rerun_command_stem] = config[:rerun_command_stem].to_s config[:backtrace_view] = config[:backtrace_view].to_sym end end
merged_config()
click to toggle source
# File lib/minitest-bender/configuration.rb, line 140 def merged_config [default_config, client_config, env_config, options_config].reduce do |acum, config| proper_config = Utils.with_symbolized_keys(Utils.without_nil_values(config)) acum.merge(proper_config) do |key, old_val, new_val| if key == :custom_colors old_val.merge(Utils.with_symbolized_keys(Utils.without_nil_values(new_val))) else new_val end end end end
parsed_list(list)
click to toggle source
# File lib/minitest-bender/configuration.rb, line 111 def parsed_list(list) strings = list.is_a?(Array) ? list.map(&:to_s) : list.split(',') strings.map { |s| s.strip.to_sym } end
sections_blacklist()
click to toggle source
# File lib/minitest-bender/configuration.rb, line 170 def sections_blacklist final_config.fetch(:sections_blacklist) end
sections_whitelist()
click to toggle source
# File lib/minitest-bender/configuration.rb, line 166 def sections_whitelist final_config.fetch(:sections) end
valid_options()
click to toggle source
# File lib/minitest-bender/configuration.rb, line 107 def valid_options default_config.keys end
validate_config(config)
click to toggle source
# File lib/minitest-bender/configuration.rb, line 98 def validate_config(config) invalid_options = config.keys.map(&:to_sym) - valid_options unless invalid_options.empty? first_invalid_option = invalid_options.first message = "invalid option: '#{first_invalid_option}'" raise ArgumentError, message end end