envl 0.0.4 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/envl.rb +32 -5
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5f1da0e5da688efb1385a9dab13e989ac9abb12f1f55951646d5fd93c6931e2e
4
- data.tar.gz: cd282029b9dd35001e4eec7174d201774ec96ad1dbefd5e4845a0539d5255712
3
+ metadata.gz: 5aa37cc038408f650f0faf1f6c7ddf7c86d6c33e7d5016c32a4eccd77b18d39a
4
+ data.tar.gz: 11f57d53fade41b77a9605a91573a6da66380e956fe53cb6a75e04fdbff5ac0f
5
5
  SHA512:
6
- metadata.gz: 43f408db46f4eaaf1550d98bfc6e6844ec61505c37cef01db41c6faeba7efe2597680be307d2a9e1c564432ff0ade7207faa5c599c6c923f0b9ad1689e9e7d8b
7
- data.tar.gz: c1f50f27abf35ff2d6922502a21953b3dfd43d3b738e81a1208731e517250e273312b2d807d690965ba037c3f5d8cfa9a82919d28f932632b7181309387f7a1a
6
+ metadata.gz: 574a2166521ae59db789391cdfde79d66e73e732ebbab3161880b01e2782c9740869415409e5057ccf26c86da02ceef73c039b61ea9edbd2eca8dbc4080336f2
7
+ data.tar.gz: abf82ebb72e468ec0ffaf3d3dc1f00708c98d225f1e812a9c7096338bb16a2168b4e01bd0d95ad75159572a2335f69721433ccd78eef7dbdd3c75c51692745c4
data/lib/envl.rb CHANGED
@@ -1,30 +1,57 @@
1
1
  # A simple environment variable loader that reads .env files.
2
2
 
3
3
  class Envl
4
+ @@loaded_vars = []
5
+
4
6
  # automatically finds all .env files and loads them into ENV.
5
7
  def self.auto_load
6
8
  files = ['*.env', '*.env.*'].map { |s| Dir.glob(s, File::FNM_CASEFOLD) }.flatten.uniq
7
9
  self.load(files)
8
10
  end
9
11
 
12
+ # finds and loads all .env files in a specific directory into ENV.
13
+ def self.load_path(path)
14
+ files = [File.join(path, "*.env"), File.join(path, "*.env.*")].map { |s| Dir.glob(s, File::FNM_CASEFOLD) }.flatten.uniq
15
+ self.load(files)
16
+ end
17
+
18
+ # loads a single .env file into ENV.
19
+ def self.load_single(path)
20
+ self.load([path])
21
+ end
22
+
23
+ # returns all loaded variables.
24
+ def self.get_loaded_vars
25
+ @@loaded_vars
26
+ end
27
+
10
28
  # accepts an array of .env files and load thems into ENV.
11
29
  def self.load(files)
12
30
  files.each do |f|
13
- self.load_file(f)
31
+ self.load_env(f)
14
32
  end
15
33
  ENV
16
34
  end
17
35
 
36
+ # sanity-check
37
+ def self.is_env?(file)
38
+ ext = File.extname(file).downcase
39
+ name = File.basename(file).downcase
40
+ ext.include? '.env' or name[name.index('.')..].include? '.env'
41
+ end
42
+
18
43
  # loads a single .env file into ENV.
19
- def self.load_file(file)
44
+ def self.load_env(file)
20
45
  begin
21
- return if not ['.env'].include? File.extname(file).downcase
46
+ return if not self.is_env?(file)
47
+
22
48
  File.readlines(file).each do |line|
23
- tokens = line.split('=')
49
+ tokens = line.split('=').map {|s| s.strip }
24
50
  if tokens.size > 1 and not tokens[0].nil? and not tokens[1].nil?
25
51
  key = tokens[0].strip
26
- value = tokens[1].gsub("'", '').gsub('"', '')
52
+ value = tokens[1].gsub("'", '')
27
53
  ENV[key] = value
54
+ @@loaded_vars << key if not @@loaded_vars.include? key
28
55
  end
29
56
  end
30
57
  rescue => error
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: envl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Scott Stauffer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-02-12 00:00:00.000000000 Z
11
+ date: 2023-02-14 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: A simple environment variable loader that reads .env files into ENV.
14
14
  email: scott@fuseraft.com