Class: FitCommit::ConfigurationLoader
- Inherits:
-
Object
- Object
- FitCommit::ConfigurationLoader
- Defined in:
- lib/fit_commit/configuration_loader.rb
Constant Summary collapse
- SYSTEM_FILEPATH =
"/etc/fit_commit.yml"- LOCAL_FILEPATH =
".fit_commit.yml"
Class Method Summary collapse
- .config_filepath ⇒ Object
- .default_configuration ⇒ Object
- .default_filepaths ⇒ Object
- .gem_default_filepath ⇒ Object
- .git_top_level ⇒ Object
- .user_filepath ⇒ Object
Instance Method Summary collapse
- #configuration ⇒ Object
-
#initialize(filepaths) ⇒ ConfigurationLoader
constructor
A new instance of ConfigurationLoader.
Constructor Details
#initialize(filepaths) ⇒ ConfigurationLoader
Returns a new instance of ConfigurationLoader.
8 9 10 |
# File 'lib/fit_commit/configuration_loader.rb', line 8 def initialize(filepaths) self.filepaths = filepaths end |
Class Method Details
.config_filepath ⇒ Object
42 43 44 |
# File 'lib/fit_commit/configuration_loader.rb', line 42 def self.config_filepath File.join(git_top_level, "config", "fit_commit.yml") end |
.default_configuration ⇒ Object
12 13 14 |
# File 'lib/fit_commit/configuration_loader.rb', line 12 def self.default_configuration new(default_filepaths).configuration end |
.default_filepaths ⇒ Object
24 25 26 27 28 29 30 31 32 |
# File 'lib/fit_commit/configuration_loader.rb', line 24 def self.default_filepaths [ gem_default_filepath, SYSTEM_FILEPATH, user_filepath, config_filepath, LOCAL_FILEPATH ] end |
.gem_default_filepath ⇒ Object
34 35 36 |
# File 'lib/fit_commit/configuration_loader.rb', line 34 def self.gem_default_filepath File.("../../../templates/config/fit_commit.default.yml", __FILE__) end |
.git_top_level ⇒ Object
46 47 48 49 50 |
# File 'lib/fit_commit/configuration_loader.rb', line 46 def self.git_top_level top_level = `git rev-parse --show-toplevel`.chomp.strip fail "Git repo not found! Please submit a bug report." if top_level == "" top_level end |
.user_filepath ⇒ Object
38 39 40 |
# File 'lib/fit_commit/configuration_loader.rb', line 38 def self.user_filepath File.join(ENV["HOME"], ".fit_commit.yml") end |
Instance Method Details
#configuration ⇒ Object
16 17 18 19 20 21 22 |
# File 'lib/fit_commit/configuration_loader.rb', line 16 def configuration filepaths.each_with_object({}) do |filepath, config| config.merge!(read_config(filepath)) do |_key, oldval, newval| oldval.merge(newval) end end end |