Sha256: 4cafeb3662a1ac2a9d9ed1ba895148dc74ec452fe628ddf80bb40b5d26295257
Contents?: true
Size: 1.52 KB
Versions: 4
Compression:
Stored size: 1.52 KB
Contents
# frozen_string_literal: true require 'hako/env_provider' module Hako module EnvProviders class File < EnvProvider # @param [Pathname] root_path # @param [Hash<String, Object>] options def initialize(root_path, options) # rubocop:disable Lint/MissingSuper unless options['path'] validation_error!('path must be set') end @path = root_path.join(options['path']) end # @param [Array<String>] variables # @return [Hash<String, String>] def ask(variables) env = {} read_from_file do |key, val| if variables.include?(key) env[key] = val end end env end # @return [Boolean] def can_ask_keys? true end # @param [Array<String>] variables # @return [Array<String>] def ask_keys(variables) keys = [] read_from_file do |key, _| if variables.include?(key) keys << key end end keys end private # @yieldparam [String] key # @yieldparam [String] val # @return [nil] def read_from_file(&block) ::File.open(@path) do |f| f.each_line do |line| line.chomp! line.lstrip! if line[0] == '#' # line comment next end key, val = line.split('=', 2) if val block.call(key, val) end end end end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
hako-2.17.0 | lib/hako/env_providers/file.rb |
hako-2.16.0 | lib/hako/env_providers/file.rb |
hako-2.15.1 | lib/hako/env_providers/file.rb |
hako-2.15.0 | lib/hako/env_providers/file.rb |