class RBS::Collection::Config
This class represent the configuration file.
Constants
- PATH
Public Class Methods
find_config_path()
click to toggle source
# File rbs-2.8.2/lib/rbs/collection/config.rb, line 19 def self.find_config_path current = Pathname.pwd loop do config_path = current.join(PATH) return config_path if config_path.exist? current = current.join('..') return nil if current.root? end end
from_path(path)
click to toggle source
# File rbs-2.8.2/lib/rbs/collection/config.rb, line 36 def self.from_path(path) new(YAML.load(path.read), config_path: path) end
generate_lockfile(config_path:, gemfile_lock_path:, with_lockfile: true)
click to toggle source
Generate a rbs lockfile from Gemfile.lock to ‘config_path`. If `with_lockfile` is true, it respects existing rbs lockfile.
# File rbs-2.8.2/lib/rbs/collection/config.rb, line 32 def self.generate_lockfile(config_path:, gemfile_lock_path:, with_lockfile: true) LockfileGenerator.generate(config_path: config_path, gemfile_lock_path: gemfile_lock_path, with_lockfile: with_lockfile) end
lockfile_of(config_path)
click to toggle source
# File rbs-2.8.2/lib/rbs/collection/config.rb, line 40 def self.lockfile_of(config_path) lock_path = to_lockfile_path(config_path) from_path lock_path if lock_path.exist? end
new(data, config_path:)
click to toggle source
# File rbs-2.8.2/lib/rbs/collection/config.rb, line 49 def initialize(data, config_path:) @data = data @config_path = config_path end
to_lockfile_path(config_path)
click to toggle source
# File rbs-2.8.2/lib/rbs/collection/config.rb, line 45 def self.to_lockfile_path(config_path) config_path.sub_ext('.lock' + config_path.extname) end
Public Instance Methods
add_gem(gem)
click to toggle source
# File rbs-2.8.2/lib/rbs/collection/config.rb, line 54 def add_gem(gem) gems << gem end
check_rbs_availability!()
click to toggle source
It raises an error when there are non-available libraries
# File rbs-2.8.2/lib/rbs/collection/config.rb, line 94 def check_rbs_availability! raise CollectionNotAvailable unless repo_path.exist? gems.each do |gem| case gem['source']['type'] when 'git' meta_path = repo_path.join(gem['name'], gem['version'], Sources::Git::METADATA_FILENAME) raise CollectionNotAvailable unless meta_path.exist? raise CollectionNotAvailable unless gem == YAML.load(meta_path.read) end end end
dump_to(io)
click to toggle source
# File rbs-2.8.2/lib/rbs/collection/config.rb, line 75 def dump_to(io) YAML.dump(@data, io) end
gem(gem_name)
click to toggle source
# File rbs-2.8.2/lib/rbs/collection/config.rb, line 58 def gem(gem_name) gems.find { |gem| gem['name'] == gem_name } end
gemfile_lock_path()
click to toggle source
# File rbs-2.8.2/lib/rbs/collection/config.rb, line 87 def gemfile_lock_path path = @data['gemfile_lock_path'] return unless path @config_path.dirname.join path end
gemfile_lock_path=(path)
click to toggle source
# File rbs-2.8.2/lib/rbs/collection/config.rb, line 83 def gemfile_lock_path=(path) @data['gemfile_lock_path'] = path.relative_path_from(@config_path.dirname).to_s end
gems()
click to toggle source
# File rbs-2.8.2/lib/rbs/collection/config.rb, line 79 def gems @data['gems'] ||= [] end
repo_path()
click to toggle source
# File rbs-2.8.2/lib/rbs/collection/config.rb, line 62 def repo_path @config_path.dirname.join @data['path'] end
sources()
click to toggle source
# File rbs-2.8.2/lib/rbs/collection/config.rb, line 66 def sources @sources ||= ( @data['sources'] .map { |c| Sources.from_config_entry(c) } .push(Sources::Stdlib.instance) .push(Sources::Rubygems.instance) ) end