Class: RBS::CLI::LibraryOptions
Relationships & Source Files | |
Inherits: | Object |
Defined in: | lib/rbs/cli.rb |
Class Method Summary
- .new ⇒ LibraryOptions constructor
Instance Attribute Summary
- #config_path rw
- #core_root rw
- #dirs readonly
- #libs readonly
- #repos readonly
Instance Method Summary
Constructor Details
.new ⇒ LibraryOptions
# File 'lib/rbs/cli.rb', line 21
def initialize() @core_root = EnvironmentLoader::DEFAULT_CORE_ROOT @repos = [] @libs = [] @dirs = [] @config_path = Collection::Config.find_config_path || Collection::Config::PATH end
Instance Attribute Details
#config_path (rw)
[ GitHub ]# File 'lib/rbs/cli.rb', line 16
attr_accessor :config_path
#core_root (rw)
[ GitHub ]# File 'lib/rbs/cli.rb', line 15
attr_accessor :core_root
#dirs (readonly)
[ GitHub ]# File 'lib/rbs/cli.rb', line 19
attr_reader :dirs
#libs (readonly)
[ GitHub ]# File 'lib/rbs/cli.rb', line 18
attr_reader :libs
#repos (readonly)
[ GitHub ]# File 'lib/rbs/cli.rb', line 17
attr_reader :repos
Instance Method Details
#loader
[ GitHub ]# File 'lib/rbs/cli.rb', line 30
def loader repository = Repository.new(no_stdlib: core_root.nil?) repos.each do |repo| repository.add(Pathname(repo)) end loader = EnvironmentLoader.new(core_root: core_root, repository: repository) if config_path lock_path = Collection::Config.to_lockfile_path(config_path) if lock_path.file? lock = Collection::Config::Lockfile.from_lockfile(lockfile_path: lock_path, data: YAML.load_file(lock_path.to_s)) end end loader.add_collection(lock) if lock dirs.each do |dir| loader.add(path: Pathname(dir)) end libs.each do |lib| name, version = lib.split(/:/, 2) next unless name loader.add(library: name, version: version) end loader end
#setup_library_options(opts)
[ GitHub ]# File 'lib/rbs/cli.rb', line 58
def (opts) opts.on("-r LIBRARY", "Load RBS files of the library") do |lib| libs << lib end opts.on("-I DIR", "Load RBS files from the directory") do |dir| dirs << dir end opts.on("--no-stdlib", "Skip loading standard library signatures") do self.core_root = nil end opts.on('--collection PATH', "File path of collection configuration (default: #{@config_path})") do |path| self.config_path = Pathname(path). end opts.on('--no-collection', 'Ignore collection configuration') do self.config_path = nil end opts.on("--repo DIR", "Add RBS repository") do |dir| repos << dir end opts end