aws_config 0.0.3 → 0.0.4

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.
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