Sha256: bf769f686161132b2389cfc8f17cb63a5ee6eabb3537580f12861146d62bf2f8

Contents?: true

Size: 1.02 KB

Versions: 4

Compression:

Stored size: 1.02 KB

Contents

require 'yaml'

module Yoda
  module Store
    class Config
      # @param yaml_str [String]
      def self.from_yaml_data(yaml_str)
        new(YAML.load(yaml_str, symbolize_names: true) || {})
      end

      # @param path [String]
      def self.at(path)
        new(YAML.load(File.read(path), symbolize_names: true) || {})
      end

      # @param contents [Hash]
      def initialize(contents)
        @contents = contents
        Logger.trace("Config: #{contents}")
      end

      # @return [Array<String>]
      def ignored_gems
        @ignored_gems ||= (@contents[:gems] || []).select { |gem_data| gem_data[:ignore] }.map { |gem_data| gem_data[:name] }
      end

      # @return [Array<String>]
      def rbs_signature_paths
        @contents.dig(:rbs, :signature) || []
      end

      # @return [Array<String>]
      def rbs_repository_paths
        @contents.dig(:rbs, :repository) || []
      end

      # @return [Array<String>]
      def rbs_libraries
        @contents.dig(:rbs, :library) || []
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
yoda-language-server-0.10.1 lib/yoda/store/config.rb
yoda-language-server-0.10.0 lib/yoda/store/config.rb
yoda-language-server-0.9.0 lib/yoda/store/config.rb
yoda-language-server-0.8.0 lib/yoda/store/config.rb