dotenvious 0.0.5 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 05b9cfc0c1060c40bfbbf274f483ae4d351991f6
|
4
|
+
data.tar.gz: 1c9bc373c7b9f4f49300bbb1046f4abc71a635b5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e7b431f326f238f3212e7a2602f829c61c141c43412d9b13ed618af526719bb572f5fde8f54425cbacad9eb7e2d4b73a204a720d5e56a8db95ec6f2038f03d03
|
7
|
+
data.tar.gz: 61213d32ed4d838ff06b5c261761a24eb4773a557a0d357a1b919c5ed3589b935befcac929735bbebd81d64cc8c07d25c84ddab4e8bfb9cca3a892963d33ff3c
|
data/dotenvious.gemspec
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require_relative 'dotenv_file'
|
2
|
+
require_relative 'yaml_file'
|
2
3
|
|
3
4
|
module Dotenvious
|
4
5
|
module Loaders
|
@@ -9,7 +10,8 @@ module Dotenvious
|
|
9
10
|
|
10
11
|
def load_environments
|
11
12
|
ENV.merge!(DotenvFile.load_from('.env'))
|
12
|
-
|
13
|
+
environment_loader = example_file.match(/\.ya?ml/) ? YamlFile : DotenvFile
|
14
|
+
ENV_EXAMPLE.merge!(environment_loader.load_from(example_file))
|
13
15
|
end
|
14
16
|
|
15
17
|
private
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
|
3
|
+
module Dotenvious
|
4
|
+
module Loaders
|
5
|
+
class YamlFile
|
6
|
+
def self.load_from(filename)
|
7
|
+
new(filename).load
|
8
|
+
end
|
9
|
+
|
10
|
+
def initialize(filename)
|
11
|
+
@filename = filename
|
12
|
+
end
|
13
|
+
|
14
|
+
def load
|
15
|
+
if file_missing?
|
16
|
+
puts "This repo does not have an #{filename} file"
|
17
|
+
return {}
|
18
|
+
end
|
19
|
+
Hash.new.tap do |environment|
|
20
|
+
environment_variables.each do |(k, v)|
|
21
|
+
environment[k] = v.to_s
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
attr_reader :filename
|
29
|
+
|
30
|
+
def file_missing?
|
31
|
+
!File.exists?(filename)
|
32
|
+
end
|
33
|
+
|
34
|
+
def file
|
35
|
+
YAML.load_file(filename)
|
36
|
+
end
|
37
|
+
|
38
|
+
def environment_variables
|
39
|
+
begin
|
40
|
+
file['machine']['environment']
|
41
|
+
rescue NoMethodError => e
|
42
|
+
puts "Error: #{filename} does not have a proper machine environment setup."
|
43
|
+
puts "The program will now exit."
|
44
|
+
exit
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -24,6 +24,22 @@ describe Dotenvious::Loaders::Environments do
|
|
24
24
|
|
25
25
|
described_class.new({example_file: '.my.example.file'}).load_environments
|
26
26
|
end
|
27
|
+
|
28
|
+
context 'which is a yml/yaml' do
|
29
|
+
it 'loads the yml correctly' do
|
30
|
+
expect(Dotenvious::Loaders::DotenvFile).to receive(:load_from).with('.env').and_return({})
|
31
|
+
expect(Dotenvious::Loaders::YamlFile).to receive(:load_from).with('example.yml').and_return({})
|
32
|
+
|
33
|
+
described_class.new({example_file: 'example.yml'}).load_environments
|
34
|
+
end
|
35
|
+
|
36
|
+
it 'also loads yaml files' do
|
37
|
+
expect(Dotenvious::Loaders::DotenvFile).to receive(:load_from).with('.env').and_return({})
|
38
|
+
expect(Dotenvious::Loaders::YamlFile).to receive(:load_from).with('example.yaml').and_return({})
|
39
|
+
|
40
|
+
described_class.new({example_file: 'example.yaml'}).load_environments
|
41
|
+
end
|
42
|
+
end
|
27
43
|
end
|
28
44
|
end
|
29
45
|
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Dotenvious::Loaders::YamlFile do
|
4
|
+
describe '.load_from' do
|
5
|
+
context 'given a file which does not exist' do
|
6
|
+
before do
|
7
|
+
expect(File).to receive(:exists?).and_return false
|
8
|
+
end
|
9
|
+
it 'aborts the process' do
|
10
|
+
described_class.load_from('.env')
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
context 'given a file which exists' do
|
15
|
+
before do
|
16
|
+
expect(File).to receive(:exists?).and_return true
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'reads the given Yaml format file and returns hash' do
|
20
|
+
expect(YAML).to receive(:load_file).and_return ({
|
21
|
+
"machine" => {
|
22
|
+
"environment" => {
|
23
|
+
"TEST" => 123,
|
24
|
+
"EXAMPLE" => 234
|
25
|
+
}
|
26
|
+
}
|
27
|
+
})
|
28
|
+
|
29
|
+
response = described_class.load_from('production.yaml')
|
30
|
+
|
31
|
+
expect(response['TEST']).to eq '123'
|
32
|
+
expect(response['EXAMPLE']).to eq '234'
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dotenvious
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jake Faris
|
@@ -74,6 +74,7 @@ files:
|
|
74
74
|
- lib/dotenvious/loaders/configuration.rb
|
75
75
|
- lib/dotenvious/loaders/dotenv_file.rb
|
76
76
|
- lib/dotenvious/loaders/environments.rb
|
77
|
+
- lib/dotenvious/loaders/yaml_file.rb
|
77
78
|
- lib/dotenvious/mismatched_variable_finder.rb
|
78
79
|
- lib/dotenvious/missing_variable_finder.rb
|
79
80
|
- lib/dotenvious/prompter.rb
|
@@ -86,6 +87,7 @@ files:
|
|
86
87
|
- spec/dotenvious/loaders/configuration_spec.rb
|
87
88
|
- spec/dotenvious/loaders/dotenv_file_spec.rb
|
88
89
|
- spec/dotenvious/loaders/environments_spec.rb
|
90
|
+
- spec/dotenvious/loaders/yaml_file_spec.rb
|
89
91
|
- spec/dotenvious/mismatched_variable_finder_spec.rb
|
90
92
|
- spec/dotenvious/missing_variable_finder_spec.rb
|
91
93
|
- spec/dotenvious/prompter_spec.rb
|