envl 0.0.5 → 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 +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