envl 0.0.4 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
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