envl 0.0.5 → 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 +23 -5
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 341a20c85eafb1226918c713ea9861e29b6a3063430fee8abb8d5d75b6eb101a
4
- data.tar.gz: 497f8f7ec3c0ab0c9da219c98f2007ec5a761655b88482cb7b3397016b690e59
3
+ metadata.gz: 5aa37cc038408f650f0faf1f6c7ddf7c86d6c33e7d5016c32a4eccd77b18d39a
4
+ data.tar.gz: 11f57d53fade41b77a9605a91573a6da66380e956fe53cb6a75e04fdbff5ac0f
5
5
  SHA512:
6
- metadata.gz: aae876744e38e3a1623cbbe83173365764efe784766a56651cad928ca2d85d73ba156d624b876b80ec3d5a1797f807e6ae443d19e4df13cd23de1aee42261468
7
- data.tar.gz: 79440f6dbf9021128a3167c196c8e76e5e47707a1497d980cf0cbe4489ea524cd4dd5d40ed38cb73956c6ece969773b0ee43f714880af5b616fc9446d02a4c26
6
+ metadata.gz: 574a2166521ae59db789391cdfde79d66e73e732ebbab3161880b01e2782c9740869415409e5057ccf26c86da02ceef73c039b61ea9edbd2eca8dbc4080336f2
7
+ data.tar.gz: abf82ebb72e468ec0ffaf3d3dc1f00708c98d225f1e812a9c7096338bb16a2168b4e01bd0d95ad75159572a2335f69721433ccd78eef7dbdd3c75c51692745c4
data/lib/envl.rb CHANGED
@@ -9,23 +9,41 @@ class Envl
9
9
  self.load(files)
10
10
  end
11
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.
12
24
  def self.get_loaded_vars
13
25
  @@loaded_vars
14
26
  end
15
27
 
16
28
  # accepts an array of .env files and load thems into ENV.
17
29
  def self.load(files)
18
- @@loaded_vars = []
19
30
  files.each do |f|
20
- self.load_file(f)
31
+ self.load_env(f)
21
32
  end
22
33
  ENV
23
34
  end
24
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
+
25
43
  # loads a single .env file into ENV.
26
- def self.load_file(file)
44
+ def self.load_env(file)
27
45
  begin
28
- return if not ['.env'].include? File.extname(file).downcase
46
+ return if not self.is_env?(file)
29
47
 
30
48
  File.readlines(file).each do |line|
31
49
  tokens = line.split('=').map {|s| s.strip }
@@ -33,7 +51,7 @@ class Envl
33
51
  key = tokens[0].strip
34
52
  value = tokens[1].gsub("'", '')
35
53
  ENV[key] = value
36
- @@loaded_vars << key
54
+ @@loaded_vars << key if not @@loaded_vars.include? key
37
55
  end
38
56
  end
39
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.5
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