-
Notifications
You must be signed in to change notification settings - Fork 20
feat: select different config via command line #65
base: master
Are you sure you want to change the base?
Conversation
@@ -2,3 +2,4 @@ export | |||
.cache | |||
last_imported | |||
config.yml | |||
config-*.yml |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm wondering, maybe it would be nicer to introduce a config
directory if there are multiple config files.
Maybe what could happen is:
- the script looks for a config.yml by default and if it doesn't find any
./config.yml
and no arguments are given, it throws an error explaining the two ways of configuring it - when an argument is given, it never checks for the
./config.yml
, it could directly try to accessconfig/your-argument.yml
What do you think?
I really like that idea, amazing that you started this PR!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Cool. Will have to look how to do this with Ruby. I am more a Python/Bash guy ;)
@@ -5,7 +5,13 @@ def self.all | |||
if ENV['ENV'] == 'test' | |||
YAML.load_file(File.join('.', 'spec/config.test.yml')) | |||
else | |||
YAML.load_file(File.join('.', 'config.yml')) | |||
# check if the first command line parameter contains a value and use that for the config file |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was thinking about the code a bit and what you could do is to extract all the config-file related logic to a method and then call it. Could be something like this:
# Reads the settings from the yaml file
class Settings
def self.all
@settings ||= begin
YAML.load_file(File.join('.', config_path))
end
end
def self.config_path
return "spec/config.test.yml" if ENV['ENV'] == 'test'
return "config/#{ARGV[0]}.yml" if ARGV[0]
"config.yml"
end
end
The YAML.load_file
should already throw an understandable error, so I don't think we would need to handle it. Let me know what you think
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same as above - great idea but no idea how to do this in Ruby. Will have to look into it.
Hi,
since I use YNAB for my wife and myself, I needed the possibility to select a different config file via command line.
This is my first Ruby "code" - works for me, YMMV.
Perhaps you can improve my solution ;)
Regards
Fabian