aws_config 0.0.3 → 0.0.4

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: 588db4fec67b92d588a1b49dc977ae8c4dfb3702
4
- data.tar.gz: 7d51c893d6adcfde70e4d39a797f81172b479d00
3
+ metadata.gz: 50d2a27d4fa0613f456f1b3da9fa72c8ea6bc9e7
4
+ data.tar.gz: 5e755930909eae2434eda5290724278d4e6a82bb
5
5
  SHA512:
6
- metadata.gz: 32d9210d1f8151fd6f52f532288b5a8708a9561af57c2a2cd38c55729bf0bbda98de9e41e2fe06fdb9b46401d8e5e54c18cb0e1219534a30d2706a0afebd7ed8
7
- data.tar.gz: fa60cb3d4c9ec6002b89761eb7708f0710f18c4a39ea845451905a98ee035dd30b94b94226f268ab031310e3ea827d16d796c35cbe54f4e805c6e45c91145350
6
+ metadata.gz: 0ad003aa7df45d64bfd53c66a7df78aeaa8332596290432b30b28280ff215f63bc9dfa1a731b685dabd61661798d3aba277ce2b0aededcd66d96e18ee2d29cfc
7
+ data.tar.gz: 17824affad770dbe373da8528a7648b947278dea200224cff19b1b1fd2a2864f783d05556f3d0e74a8b1dae8c4ccd49f9f3536f71a3231d7f8d113227d8a3585
data/README.md CHANGED
@@ -18,36 +18,66 @@ Or install it yourself as:
18
18
 
19
19
  ## Usage
20
20
 
21
- It parses `~/.aws/config` by default.
22
-
23
- If you put a config file like:
24
-
25
- [default]
26
- aws_access_key_id=DefaultAccessKey01
27
- aws_secret_access_key=Default/Secret/Access/Key/02
28
- # Optional, to define default region for this profile.
29
- region=us-west-1
30
-
31
- [profile testing]
32
- aws_access_key_id=TestingAccessKey03
33
- aws_secret_access_key=Testing/Secret/Access/Key/04
34
- region=us-west-2
21
+ It parses `~/.aws/config` and `~/.aws/credentials` by default.
22
+
23
+ If your aws config files look like this:
24
+
25
+ **Credentials file**
26
+ ```
27
+ [default]
28
+ aws_access_key_id=DefaultAccessKey01
29
+ aws_secret_access_key=Default/Secret/Access/Key/02
30
+
31
+ [testing]
32
+ aws_access_key_id=TestingAccessKey03
33
+ aws_secret_access_key=Testing/Secret/Access/Key/04
34
+ ```
35
+
36
+ **Config file**
37
+ ```
38
+ [default]
39
+ # Optional, to define default region for this profile.
40
+ region=us-west-1
41
+ source_profile=default
42
+
43
+ [profile testing]
44
+ role_arn=arn:example:283671836
45
+ region=us-west-2
46
+ source_profile=testing
47
+
48
+ [profile with_mfa]
49
+ source_profile=testing
50
+ region=ap-southeast-2
51
+ mfa_serial=arn:mfa_device:151235152134
52
+ ```
35
53
 
36
54
  you can access it like:
55
+ ```ruby
56
+ require "aws_config"
37
57
 
38
- require "aws_config"
39
-
40
- puts AWSConfig.default.aws_access_key_id #=> DefaultAccessKey01
41
- puts AWSConfig.default.region #=> Default/Secret/Access/Key/02
58
+ puts AWSConfig.default.aws_access_key_id #=> DefaultAccessKey01
59
+ puts AWSConfig.default.region #=> Default/Secret/Access/Key/02
60
+ ```
42
61
 
43
62
  also you can do like hashes:
63
+ ```ruby
64
+ puts AWSConfig["default"]["aws_access_key_id"] #=> DefaultAccessKey01
65
+ puts AWSConfig["default"]["region"] #=> Default/Secret/Access/Key/02
66
+ ```
44
67
 
45
- puts AWSConfig["default"]["aws_access_key_id"] #=> DefaultAccessKey01
46
- puts AWSConfig["default"]["region"] #=> Default/Secret/Access/Key/02
68
+ If your config contains chained profiles using the `source_profile` property,
69
+ you can still access the source profiles properties from the top i.e
70
+ ```ruby
71
+ require "aws_config"
47
72
 
48
- If you want to use with aws-sdk-ruby, you can configure like:
73
+ puts AWSConfig.with_mfa.role_arn #=> arn:example:283671836
74
+ puts AWSConfig.with_mfa.region #=> ap-southeast-2
75
+ ```
49
76
 
50
- AWS.config(AWSConfig.default.config_hash)
77
+ If you want to use with aws-sdk-ruby, you can configure like:
78
+ ```ruby
79
+ AWS.config(AWSConfig.default.config_hash)
80
+ ```
51
81
 
52
82
  ## Contributing
53
83
 
@@ -3,8 +3,12 @@ require "aws_config/profile"
3
3
 
4
4
  module AWSConfig
5
5
  class Parser
6
- def self.parse(string)
7
- new.parse(string)
6
+ attr_accessor :credential_file_mode
7
+
8
+ def self.parse(string, credential_file_mode = false)
9
+ parser = new
10
+ parser.credential_file_mode = credential_file_mode
11
+ parser.parse(string)
8
12
  end
9
13
 
10
14
  def parse(string)
@@ -12,7 +16,7 @@ module AWSConfig
12
16
  end
13
17
 
14
18
  private
15
-
19
+
16
20
  def tokenize(string)
17
21
  s = StringScanner.new(string)
18
22
  tokens = []
@@ -23,6 +27,8 @@ module AWSConfig
23
27
  tokens << [:profile, "default"]
24
28
  elsif m = s[1].match(/profile\s+([^\s]+)$/)
25
29
  tokens << [:profile, m[1]]
30
+ elsif credential_file_mode
31
+ tokens << [:profile, s[1]]
26
32
  end
27
33
  elsif s.scan(/([^\s=#]+)\s*=\s*([^\s#]+)/)
28
34
  tokens << [:key_value, s[1], s[2]]
@@ -11,16 +11,27 @@ module AWSConfig
11
11
  key = key.to_s
12
12
  if entries.has_key?(key)
13
13
  entries[key]
14
+ elsif source_profile?
15
+ entries["source_profile"][key]
14
16
  else
15
17
  nil
16
18
  end
17
19
  end
18
20
 
21
+ def []=(key, value)
22
+ key = key.to_s
23
+ entries[key] = value
24
+ end
25
+
19
26
  def has_key?(key)
20
27
  key = key.to_s
21
28
  entries.has_key?(key)
22
29
  end
23
30
 
31
+ def source_profile?
32
+ entries.key?("source_profile") && entries["source_profile"].is_a?(Profile)
33
+ end
34
+
24
35
  def respond_to?(id, include_all = false)
25
36
  has_key?(id) || super
26
37
  end
@@ -28,6 +39,12 @@ module AWSConfig
28
39
  def method_missing(id, *args)
29
40
  if has_key?(id)
30
41
  self[id]
42
+ elsif source_profile?
43
+ if entries["source_profile"].respond_to?(id)
44
+ entries["source_profile"].send(id, args)
45
+ else
46
+ super
47
+ end
31
48
  else
32
49
  super
33
50
  end
@@ -35,10 +52,22 @@ module AWSConfig
35
52
 
36
53
  def config_hash
37
54
  {
38
- access_key_id: entries["aws_access_key_id"],
39
- secret_access_key: entries["aws_secret_access_key"],
40
- region: entries["region"]
55
+ access_key_id: self["aws_access_key_id"],
56
+ secret_access_key: self["aws_secret_access_key"],
57
+ region: self["region"]
41
58
  }
42
59
  end
60
+
61
+ # Returns a new profile from the two merged profiles
62
+ def merge(profile)
63
+ merged = entries.dup
64
+ merged.merge! profile.entries
65
+ new name, merged
66
+ end
67
+
68
+ def merge!(profile)
69
+ entries.merge! profile.entries
70
+ self
71
+ end
43
72
  end
44
73
  end
@@ -0,0 +1,43 @@
1
+ require "aws_config/profile"
2
+
3
+ module AWSConfig
4
+ class ProfileResolver
5
+ attr_reader :profiles, :wanted_profiles
6
+
7
+ def initialize
8
+ @profiles = {}
9
+ @wanted_profiles = {}
10
+ end
11
+
12
+ def add(profs)
13
+ profs.each do |name, profile|
14
+ if profiles.key? name
15
+ profiles[name].merge! profile
16
+ else
17
+ profiles[name] = profile
18
+ end
19
+ resolve_source_profile(name, profile) if profile.has_key? "source_profile"
20
+ provides_source_profile(name, profile)
21
+ end
22
+ end
23
+
24
+ private
25
+
26
+ def resolve_source_profile(name, profile)
27
+ source_profile = profile.source_profile
28
+ if profiles.key? source_profile
29
+ profile["source_profile"] = profiles[source_profile]
30
+ else
31
+ (wanted_profiles[source_profile] ||= []) << name
32
+ end
33
+ end
34
+
35
+ def provides_source_profile(name, profile)
36
+ return unless wanted_profiles.key? name
37
+ wanted_profiles[name].each do |wanted_by|
38
+ profiles[wanted_by]["source_profile"] = profile
39
+ end
40
+ wanted_profiles.delete name
41
+ end
42
+ end
43
+ end
@@ -1,9 +1,13 @@
1
+ require "aws_config/profile_resolver"
1
2
  module AWSConfig
2
3
  module Store
3
4
  def profiles
4
5
  @profiles ||= begin
5
6
  if File.exists?(config_file)
6
- Parser.parse(File.read(config_file))
7
+ profile_resolver = ProfileResolver.new
8
+ profile_resolver.add Parser.parse(File.read(credentials_file), true)
9
+ profile_resolver.add Parser.parse(File.read(config_file))
10
+ profile_resolver.profiles
7
11
  else
8
12
  Hash.new
9
13
  end
@@ -19,6 +23,15 @@ module AWSConfig
19
23
  @profiles = nil
20
24
  end
21
25
 
26
+ def credentials_file
27
+ @credentials_file || ENV["AWS_SHARED_CREDENTIALS_FILE"] || File.join(ENV["HOME"], ".aws/credentials")
28
+ end
29
+
30
+ def credentials_file=(path)
31
+ @credentials_file = path
32
+ @profiles = nil
33
+ end
34
+
22
35
  def [](profile)
23
36
  profiles[profile.to_s]
24
37
  end
@@ -1,3 +1,3 @@
1
1
  module AWSConfig
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -59,6 +59,46 @@ aws_access_key_id=DefaultAccessKey01
59
59
  ] }
60
60
  end
61
61
  end
62
+
63
+ context "in credential file mode" do
64
+ subject do
65
+ sut = described_class.new
66
+ sut.credential_file_mode = true
67
+ sut.send(:tokenize, string)
68
+ end
69
+ context "with only the default profile" do
70
+ let(:string) do
71
+ <<-EOC
72
+ [default]
73
+ aws_access_key_id=DefaultAccessKey01
74
+ aws_secret_access_key=Default/Secret/Access/Key/02
75
+ EOC
76
+ end
77
+ it { should eq [
78
+ [:profile, "default"],
79
+ [:key_value, "aws_access_key_id", "DefaultAccessKey01"],
80
+ [:key_value, "aws_secret_access_key", "Default/Secret/Access/Key/02"],
81
+ ] }
82
+ end
83
+
84
+ context "with the default and named profiles" do
85
+ let(:string) do
86
+ <<-EOC
87
+ [default]
88
+ aws_access_key_id=DefaultAccessKey01
89
+
90
+ [testing]
91
+ aws_access_key_id=TestingAccessKey03
92
+ EOC
93
+ end
94
+ it { should eq [
95
+ [:profile, "default"],
96
+ [:key_value, "aws_access_key_id", "DefaultAccessKey01"],
97
+ [:profile, "testing"],
98
+ [:key_value, "aws_access_key_id", "TestingAccessKey03"],
99
+ ] }
100
+ end
101
+ end
62
102
  end
63
103
 
64
104
  describe "#build" do
@@ -67,7 +107,7 @@ aws_access_key_id=DefaultAccessKey01
67
107
  context "Single profile" do
68
108
  let(:tokens) { [
69
109
  [:profile, "default"],
70
- [:key_value, "aws_access_key_id", "DefaultAccessKey01"],
110
+ [:key_value, "aws_access_key_id", "DefaultAccessKey01"],
71
111
  [:key_value, "aws_secret_access_key", "Default/Secret/Access/Key/02"],
72
112
  [:key_value, "region", "us-west-1"]
73
113
  ] }
@@ -83,9 +123,9 @@ aws_access_key_id=DefaultAccessKey01
83
123
  context "Multi profiles" do
84
124
  let(:tokens) { [
85
125
  [:profile, "default"],
86
- [:key_value, "aws_access_key_id", "DefaultAccessKey01"],
126
+ [:key_value, "aws_access_key_id", "DefaultAccessKey01"],
87
127
  [:profile, "testing"],
88
- [:key_value, "aws_access_key_id", "TestingAccessKey02"],
128
+ [:key_value, "aws_access_key_id", "TestingAccessKey02"],
89
129
  ] }
90
130
  it { should eq({
91
131
  "default" => { "aws_access_key_id" => "DefaultAccessKey01" },
@@ -96,11 +136,11 @@ aws_access_key_id=DefaultAccessKey01
96
136
  context "Twice-defined single profile" do
97
137
  let(:tokens) { [
98
138
  [:profile, "default"],
99
- [:key_value, "aws_access_key_id", "DefaultAccessKey01"],
139
+ [:key_value, "aws_access_key_id", "DefaultAccessKey01"],
100
140
  [:key_value, "region", "us-west-1"],
101
141
  [:profile, "default"],
102
- [:key_value, "aws_access_key_id", "DefaultAccessKey01_ANOTHER"],
103
- [:key_value, "aws_secret_access_key", "Default/Secret/Access/Key/01"],
142
+ [:key_value, "aws_access_key_id", "DefaultAccessKey01_ANOTHER"],
143
+ [:key_value, "aws_secret_access_key", "Default/Secret/Access/Key/01"],
104
144
  ] }
105
145
  it { should eq({
106
146
  "default" => {
@@ -0,0 +1,90 @@
1
+ require "spec_helper"
2
+
3
+ describe AWSConfig::ProfileResolver do
4
+ subject { described_class.new }
5
+
6
+ let(:default_profile) do
7
+ AWSConfig::Profile.new(
8
+ "default",
9
+ "aws_access_key_id" => "DefaultAccessId01",
10
+ "aws_secret_access_key" => "DefaultSecretKey01",
11
+ "region" => "us-west-1"
12
+ )
13
+ end
14
+ let(:testing_profile) do
15
+ AWSConfig::Profile.new(
16
+ "testing",
17
+ "aws_access_key_id" => "TestingAccessId01",
18
+ "aws_secret_access_key" => "TestingSecretKey01",
19
+ "region" => "us-west-1"
20
+ )
21
+ end
22
+ let(:profile_with_source) do
23
+ AWSConfig::Profile.new(
24
+ "with_source",
25
+ "region" => "ap-southeast-2",
26
+ "source_profile" => "testing"
27
+ )
28
+ end
29
+ describe "#add" do
30
+ context "when all profiles resolve" do
31
+ let(:profiles) do
32
+ {
33
+ default_profile.name => default_profile,
34
+ testing_profile.name => testing_profile,
35
+ profile_with_source.name => profile_with_source
36
+ }
37
+ end
38
+
39
+ it "resolves the sources" do
40
+ subject.add profiles
41
+ expect(profiles["with_source"].source_profile).to be testing_profile
42
+ end
43
+ end
44
+
45
+ context "when some profles do not resolve" do
46
+ let(:unresolving) do
47
+ AWSConfig::Profile.new(
48
+ "unresolving",
49
+ "aws_access_key_id" => "UnresolvingAccessId01",
50
+ "aws_secret_access_key" => "UnresolvingSecretKey01",
51
+ "region" => "us-west-1",
52
+ "source_profile" => "doesnt_exist"
53
+ )
54
+ end
55
+
56
+ let(:missing_profile) do
57
+ AWSConfig::Profile.new(
58
+ "doesnt_exist",
59
+ "aws_session_token" => "uk-west-2"
60
+ )
61
+ end
62
+ let(:profiles) do
63
+ {
64
+ default_profile.name => default_profile,
65
+ testing_profile.name => testing_profile,
66
+ profile_with_source.name => profile_with_source,
67
+ unresolving.name => unresolving
68
+ }
69
+ end
70
+
71
+ it "resolves the sources it can" do
72
+ subject.add profiles
73
+ expect(profiles["with_source"].source_profile).to be testing_profile
74
+ end
75
+
76
+ it "should remember the unresolved source profile" do
77
+ subject.add profiles
78
+ expect(subject.wanted_profiles).to eq("doesnt_exist" => ["unresolving"])
79
+ end
80
+
81
+ it "should resolve the missing profile if it is added later" do
82
+ subject.add profiles
83
+ expect(subject.wanted_profiles).to eq("doesnt_exist" => ["unresolving"])
84
+ subject.add missing_profile.name => missing_profile
85
+ expect(subject.wanted_profiles).to eq({})
86
+ expect(subject.profiles["unresolving"].source_profile).to be missing_profile
87
+ end
88
+ end
89
+ end
90
+ end
@@ -1,46 +1,91 @@
1
1
  require "spec_helper"
2
2
 
3
3
  describe AWSConfig::Profile do
4
- subject {
5
- AWSConfig::Profile.new(
6
- "default",
7
- "aws_access_key_id" => "DefaultAccessKey01",
8
- "aws_secret_access_key" => "Default/Secret/Access/Key/02",
9
- "region" => "us-west-1"
10
- )
11
- }
12
-
13
- it "should return given name via method" do
14
- expect(subject.name).to eq "default"
15
- end
4
+ context "regardless of source_profile" do
5
+ subject {
6
+ AWSConfig::Profile.new(
7
+ "default",
8
+ "aws_access_key_id" => "DefaultAccessKey01",
9
+ "aws_secret_access_key" => "Default/Secret/Access/Key/02",
10
+ "region" => "us-west-1"
11
+ )
12
+ }
16
13
 
17
- it "should respond to methods whose names are same as given entries" do
18
- expect(subject).to respond_to :aws_access_key_id
19
- expect(subject).to respond_to :aws_secret_access_key
20
- expect(subject).to respond_to :region
21
- end
14
+ it "should return given name via method" do
15
+ expect(subject.name).to eq "default"
16
+ end
22
17
 
23
- it "should return given entries via methods" do
24
- expect(subject.aws_access_key_id).to eq "DefaultAccessKey01"
25
- expect(subject.aws_secret_access_key).to eq "Default/Secret/Access/Key/02"
26
- expect(subject.region).to eq "us-west-1"
27
- end
18
+ it "should respond to methods whose names are same as given entries" do
19
+ expect(subject).to respond_to :aws_access_key_id
20
+ expect(subject).to respond_to :aws_secret_access_key
21
+ expect(subject).to respond_to :region
22
+ end
28
23
 
29
- it "should return given entries via hash-like methods" do
30
- expect(subject[:aws_access_key_id]).to eq "DefaultAccessKey01"
31
- expect(subject[:aws_secret_access_key]).to eq "Default/Secret/Access/Key/02"
32
- expect(subject[:region]).to eq "us-west-1"
33
- end
24
+ it "should return given entries via methods" do
25
+ expect(subject.aws_access_key_id).to eq "DefaultAccessKey01"
26
+ expect(subject.aws_secret_access_key).to eq "Default/Secret/Access/Key/02"
27
+ expect(subject.region).to eq "us-west-1"
28
+ end
29
+
30
+ it "should return given entries via hash-like methods" do
31
+ expect(subject[:aws_access_key_id]).to eq "DefaultAccessKey01"
32
+ expect(subject[:aws_secret_access_key]).to eq "Default/Secret/Access/Key/02"
33
+ expect(subject[:region]).to eq "us-west-1"
34
+ end
34
35
 
35
- it "should raise exceptions if unknown entry is called via methods" do
36
- expect { subject.unknown_method }.to raise_error NoMethodError
36
+ it "should raise exceptions if unknown entry is called via methods" do
37
+ expect { subject.unknown_method }.to raise_error NoMethodError
38
+ end
39
+
40
+ it "should return a hash for aws-sdk-ruby's configuration format" do
41
+ expect(subject.config_hash).to eq({
42
+ access_key_id: "DefaultAccessKey01",
43
+ secret_access_key: "Default/Secret/Access/Key/02",
44
+ region: "us-west-1"
45
+ })
46
+ end
37
47
  end
38
48
 
39
- it "should return a hash for aws-sdk-ruby's configuration format" do
40
- expect(subject.config_hash).to eq({
41
- access_key_id: "DefaultAccessKey01",
42
- secret_access_key: "Default/Secret/Access/Key/02",
43
- region: "us-west-1"
44
- })
49
+ context "with source_profile" do
50
+ let(:source_profile) do
51
+ AWSConfig::Profile.new(
52
+ "default",
53
+ "region" => "ap-southeast-2",
54
+ "aws_access_key_id" => "DefaultAccessKey01",
55
+ "aws_secret_access_key" => "Default/Secret/Access/Key/02"
56
+ )
57
+ end
58
+ subject do
59
+ AWSConfig::Profile.new(
60
+ "testing",
61
+ "region" => "us-west-1",
62
+ "source_profile" => source_profile
63
+ )
64
+ end
65
+ context "when called like a method" do
66
+ let(:region) { "us-west-1" }
67
+ let(:access_key_id) { "DefaultAccesskey01" }
68
+ it "should return values directly on the profile" do
69
+ expect(subject.region).to eq region
70
+ end
71
+
72
+ it "should check the source profile if the desired key is missing" do
73
+ expect(source_profile).to receive(:aws_access_key_id).and_return(access_key_id)
74
+ expect(subject.aws_access_key_id).to eq access_key_id
75
+ end
76
+ end
77
+
78
+ context "when called like a hash" do
79
+ let(:region) { "us-west-1" }
80
+ let(:access_key_id) { "DefaultAccesskey01" }
81
+ it "should return values directly on the profile" do
82
+ expect(subject["region"]).to eq region
83
+ end
84
+
85
+ it "should check the source profile if the desired key is missing" do
86
+ expect(source_profile).to receive(:[]).with("aws_access_key_id").and_return(access_key_id)
87
+ expect(subject["aws_access_key_id"]).to eq access_key_id
88
+ end
89
+ end
45
90
  end
46
91
  end
@@ -2,7 +2,11 @@ require "spec_helper"
2
2
 
3
3
  describe AWSConfig do
4
4
  let(:sample_config_file) { File.expand_path("../../samples/config.txt", __FILE__) }
5
- before { AWSConfig.config_file = sample_config_file }
5
+ let(:sample_creds_file) { File.expand_path("../../samples/credentials.txt", __FILE__) }
6
+ before do
7
+ AWSConfig.config_file = sample_config_file
8
+ AWSConfig.credentials_file = sample_creds_file
9
+ end
6
10
 
7
11
  it "should return an entry in a profile via method" do
8
12
  expect(described_class.default.aws_access_key_id).to eq "DefaultAccessKey01"
@@ -1,10 +1,8 @@
1
1
  [default]
2
- aws_access_key_id=DefaultAccessKey01
3
- aws_secret_access_key=Default/Secret/Access/Key/02
4
2
  # Optional, to define default region for this profile.
5
3
  region=us-west-1
4
+ source_profile=default
6
5
 
7
6
  [profile testing]
8
- aws_access_key_id=TestingAccessKey03
9
- aws_secret_access_key=Testing/Secret/Access/Key/04
10
7
  region=us-west-2
8
+ source_profile=testing
@@ -0,0 +1,7 @@
1
+ [default]
2
+ aws_access_key_id=DefaultAccessKey01
3
+ aws_secret_access_key=Default/Secret/Access/Key/02
4
+
5
+ [testing]
6
+ aws_access_key_id=TestingAccessKey03
7
+ aws_secret_access_key=Testing/Secret/Access/Key/04
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws_config
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Masato Ikeda
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-04-30 00:00:00.000000000 Z
11
+ date: 2016-05-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -70,12 +70,15 @@ files:
70
70
  - lib/aws_config.rb
71
71
  - lib/aws_config/parser.rb
72
72
  - lib/aws_config/profile.rb
73
+ - lib/aws_config/profile_resolver.rb
73
74
  - lib/aws_config/store.rb
74
75
  - lib/aws_config/version.rb
75
76
  - spec/lib/aws_config/parser_spec.rb
77
+ - spec/lib/aws_config/profile_resolver_spec.rb
76
78
  - spec/lib/aws_config/profile_spec.rb
77
79
  - spec/lib/aws_config_spec.rb
78
80
  - spec/samples/config.txt
81
+ - spec/samples/credentials.txt
79
82
  - spec/spec_helper.rb
80
83
  homepage: https://github.com/a2ikm/aws_config
81
84
  licenses:
@@ -103,7 +106,9 @@ specification_version: 4
103
106
  summary: AWSConfig is a parser for AWS_CONFIG_FILE used in aws-cli.
104
107
  test_files:
105
108
  - spec/lib/aws_config/parser_spec.rb
109
+ - spec/lib/aws_config/profile_resolver_spec.rb
106
110
  - spec/lib/aws_config/profile_spec.rb
107
111
  - spec/lib/aws_config_spec.rb
108
112
  - spec/samples/config.txt
113
+ - spec/samples/credentials.txt
109
114
  - spec/spec_helper.rb