moduleSteepclassProjectclassDSLclassTargetDSLattr_reader:nameattr_reader:sourcesattr_reader:librariesattr_reader:signaturesattr_reader:ignored_sourcesattr_reader:stdlib_rootattr_reader:core_rootattr_reader:repo_pathsattr_reader:code_diagnostics_configattr_reader:projectattr_reader:collection_config_pathNONE=Object.new.freezedefinitialize(name,sources: [],libraries: [],signatures: [],ignored_sources: [],repo_paths: [],code_diagnostics_config: {},project: nil,collection_config_path: NONE)@name=name@sources=sources@libraries=libraries@signatures=signatures@ignored_sources=ignored_sources@core_root=nil@stdlib_root=nil@repo_paths=[]@code_diagnostics_config=code_diagnostics_config@project=project@collection_config_path=casecollection_config_pathwhenNONEpath=project&.absolute_path(RBS::Collection::Config::PATH)path&.exist??path:nilelsecollection_config_pathendenddefinitialize_copy(other)@name=other.name@sources=other.sources.dup@libraries=other.libraries.dup@signatures=other.signatures.dup@ignored_sources=other.ignored_sources.dup@repo_paths=other.repo_paths.dup@core_root=other.core_root@stdlib_root=other.stdlib_root@code_diagnostics_config=other.code_diagnostics_config.dup@project=other.project@collection_config_path=other.collection_config_pathenddefcheck(*args)sources.push(*args)enddefignore(*args)ignored_sources.push(*args)enddeflibrary(*args)libraries.push(*args)enddeftyping_options(level=nil,**hash)Steep.logger.error"#typing_options is deprecated and has no effect as of version 0.46.0. Update your Steepfile as follows for (almost) equivalent setting:"messages=[]messages<<"# D = Steep::Diagnostic # Define a constant to shorten namespace"caselevelwhen:strictmessages<<"configure_code_diagnostics(D::Ruby.strict) # :strict"when:defaultmessages<<"configure_code_diagnostics(D::Ruby.default) # :default"when:lenientmessages<<"configure_code_diagnostics(D::Ruby.lenient) # :lenient"endmessages.eachdo|msg|Steep.logger.error" #{msg}"endconfig=[]ifhash[:allow_missing_definitions]config<<"hash[D::Ruby::MethodDefinitionMissing] = nil # allow_missing_definitions"endifhash[:allow_fallback_any]config<<"hash[D::Ruby::FallbackAny] = nil # allow_fallback_any"endifhash[:allow_unknown_constant_assignment]config<<"hash[D::Ruby::UnknownConstantAssigned] = nil # allow_unknown_constant_assignment"endifhash[:allow_unknown_method_calls]config<<"hash[D::Ruby::NoMethod] = nil # allow_unknown_method_calls"endunlessconfig.empty?Steep.logger.error" configure_code_diagnostics do |hash|"config.eachdo|c|Steep.logger.error" #{c}"endSteep.logger.error" end"endenddefsignature(*args)signatures.push(*args)enddefupdate(name: self.name,sources: self.sources,libraries: self.libraries,ignored_sources: self.ignored_sources,signatures: self.signatures,project: self.project)self.class.new(name,sources: sources,libraries: libraries,signatures: signatures,ignored_sources: ignored_sources,project: project,)enddefno_builtin!(value=true)Steep.logger.error"`#no_builtin!` in Steepfile is deprecated and ignored. Use `#stdlib_path` instead."enddefvendor(dir="vendor/sigs",stdlib: nil,gems: nil)Steep.logger.error"`#vendor` in Steepfile is deprecated and ignored. Use `#stdlib_path` instead."enddefstdlib_path(core_root:,stdlib_root:)@core_root=core_root?Pathname(core_root):core_root@stdlib_root=stdlib_root?Pathname(stdlib_root):stdlib_rootenddefrepo_path(*paths)@repo_paths.push(*paths.map{|s|Pathname(s)})end# Configure the code diagnostics printing setup.## Yields a hash, and the update the hash in the block.## ```rb# D = Steep::Diagnostic## configure_code_diagnostics do |hash|# # Assign one of :error, :warning, :information, :hint or :nil to error classes.# hash[D::Ruby::UnexpectedPositionalArgument] = :error# end# ```## Passing a hash is also allowed.## ```rb# D = Steep::Diagnostic## configure_code_diagnostics(D::Ruby.lenient)# ```#defconfigure_code_diagnostics(hash=nil)ifhashcode_diagnostics_config.merge!(hash)endyieldcode_diagnostics_configifblock_given?enddefcollection_config(path)@collection_config_path=project.absolute_path(path)enddefdisable_collection@collection_config_path=nilendendattr_reader:project@@templates={gemfile: TargetDSL.new(:gemfile).tapdo|target|target.check"Gemfile"target.library"gemfile"end}defself.templates@@templatesenddefinitialize(project:)@project=project@global_signatures=[]enddefself.register_template(name,target)templates[name]=targetenddefself.parse(project,code,filename: "Steepfile")Steep.logger.taggedfilenamedoself.new(project: project).instance_eval(code,filename)endenddeftarget(name,template: nil,&block)target=iftemplateself.class.templates[template]&.dup&.update(name: name,project: project)orraise"Unknown template: #{template}, available templates: #{@@templates.keys.join(", ")}"elseTargetDSL.new(name,code_diagnostics_config: Diagnostic::Ruby.default.dup,project: project)endSteep.logger.tagged"target=#{name}"dotarget.instance_eval(&block)ifblock_given?endsource_pattern=Pattern.new(patterns: target.sources,ignores: target.ignored_sources,ext: ".rb")signature_pattern=Pattern.new(patterns: target.signatures,ext: ".rbs")collection_lock=target.collection_config_path&.then{|p|RBS::Collection::Config.lockfile_of(p)}Project::Target.new(name: target.name,source_pattern: source_pattern,signature_pattern: signature_pattern,options: Options.new.tapdo|options|options.libraries.push(*target.libraries)options.paths=Options::PathOptions.new(core_root: target.core_root,stdlib_root: target.stdlib_root,repo_paths: target.repo_paths)options.collection_lock=collection_lockend,code_diagnostics_config: target.code_diagnostics_config).tapdo|target|project.targets<<targetendendendendend