class StackedConfig::Layers::EnvLayer

Attributes

filter[R]

Public Class Methods

new(filter=nil) click to toggle source
# File lib/stacked_config/layers/env_layer.rb, line 8
def initialize(filter=nil)
  self.filter = filter
end

Public Instance Methods

filter=(filter) click to toggle source
# File lib/stacked_config/layers/env_layer.rb, line 12
def filter=(filter)
  raise 'Invalid filter' unless [NilClass, String, Array, Regexp].include? filter.class
  @filter = filter
  load
end
load(*args) click to toggle source
# File lib/stacked_config/layers/env_layer.rb, line 18
def load(*args)
  self.replace read_filtered_environment
  @file_name = :none
  self
end

Private Instance Methods

read_filtered_environment() click to toggle source
# File lib/stacked_config/layers/env_layer.rb, line 26
def read_filtered_environment
  return ENV.to_hash if filter.nil?

  if filter.is_a? Array
    ENV.to_hash.select {|k, v| filter.include?(k) }
  elsif  filter.is_a? Regexp
    ENV.to_hash.select {|k, v| k =~ filter }
  elsif filter.is_a? String
    ENV.to_hash.select {|k, v| k == filter }
  end
end