lib/tapioca/config_builder.rb in tapioca-0.4.0 vs lib/tapioca/config_builder.rb in tapioca-0.4.1

- old
+ new

@@ -6,31 +6,40 @@ module Tapioca class ConfigBuilder class << self extend(T::Sig) - sig { params(options: T::Hash[String, T.untyped]).returns(Config) } - def from_options(options) + sig { params(command: Symbol, options: T::Hash[String, T.untyped]).returns(Config) } + def from_options(command, options) Config.from_hash( - merge_options(default_options, config_options, options) + merge_options(default_options(command), config_options, options) ) end private sig { returns(T::Hash[String, T.untyped]) } def config_options - if File.exist?(Config::CONFIG_FILE_PATH) - YAML.load_file(Config::CONFIG_FILE_PATH, fallback: {}) + if File.exist?(Config::TAPIOCA_CONFIG) + YAML.load_file(Config::TAPIOCA_CONFIG, fallback: {}) else {} end end - sig { returns(T::Hash[String, T.untyped]) } - def default_options - DEFAULT_OPTIONS + sig { params(command: Symbol).returns(T::Hash[String, T.untyped]) } + def default_options(command) + default_outdir = case command + when :sync, :generate + Config::DEFAULT_GEMDIR + when :dsl + Config::DEFAULT_DSLDIR + else + Config::SORBET_PATH + end + + DEFAULT_OPTIONS.merge("outdir" => default_outdir) end sig { returns(String) } def default_command command = File.basename($PROGRAM_NAME) @@ -53,13 +62,14 @@ end end DEFAULT_OPTIONS = T.let({ "postrequire" => Config::DEFAULT_POSTREQUIRE, - "outdir" => Config::DEFAULT_OUTDIR, + "outdir" => nil, "generate_command" => default_command, "exclude" => [], "typed_overrides" => Config::DEFAULT_OVERRIDES, "todos_path" => Config::DEFAULT_TODOSPATH, + "generators" => [], }.freeze, T::Hash[String, T.untyped]) end end