class RBS::Collection::Config - rbs: Ruby Standard Library Documentation

# class RBS::Collection::Config

This class represent the configuration file.

### Constants

PATH

### Attributes

config_path[R]
data[R]

### Public Class Methods

find_config_path() click to toggle source

    # File rbs-3.8.0/lib/rbs/collection/config.rb, line 21
    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-3.8.0/lib/rbs/collection/config.rb, line 41
    def self.from_path(path)
      new(YAML.load(path.read), config_path: path)
    end

generate_lockfile(config_path:, definition:, 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-3.8.0/lib/rbs/collection/config.rb, line 34
    def self.generate_lockfile(config_path:, definition:, with_lockfile: true)
      config = from_path(config_path)
      lockfile = LockfileGenerator.generate(config: config, definition: definition, with_lockfile: with_lockfile)

      [config, lockfile]
    end

new(data, config_path:) click to toggle source

    # File rbs-3.8.0/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-3.8.0/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

gem(gem_name) click to toggle source

    # File rbs-3.8.0/lib/rbs/collection/config.rb, line 54
    def gem(gem_name)
      gems.find { |gem| gem['name'] == gem_name }
    end

gems() click to toggle source

    # File rbs-3.8.0/lib/rbs/collection/config.rb, line 74
    def gems
      @data['gems'] ||= (
        [] #: Array[gem_entry]
      )
    end

repo_path() click to toggle source

    # File rbs-3.8.0/lib/rbs/collection/config.rb, line 58
    def repo_path
      @config_path.dirname.join repo_path_data
    end

repo_path_data() click to toggle source

    # File rbs-3.8.0/lib/rbs/collection/config.rb, line 62
    def repo_path_data
      Pathname(@data["path"])
    end

sources() click to toggle source

    # File rbs-3.8.0/lib/rbs/collection/config.rb, line 66
    def sources
      @sources ||= [
        Sources::Rubygems.instance,
        *@data['sources'].map { |c| Sources.from_config_entry(c, base_directory: @config_path.dirname) },
        Sources::Stdlib.instance
      ]
    end