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