secros 0.1.8 → 0.2.0

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: eb3353b3567ac6b58470c69ae2997c864f1adbcc
4
- data.tar.gz: 1cbe512b096e29a30885187ed716b7ab15a99ddf
3
+ metadata.gz: c211687275d52c91793da1adbc6d6dcbea2d209c
4
+ data.tar.gz: 65b6da2efdca6d74073481c773f387bfa912e433
5
5
  SHA512:
6
- metadata.gz: 79c6ffad2a37426ae2098b2248d80815046b2379b68c753fd8f9dcbf10b04117c92227556381737bed0e076bb85d55effea107ab3e94c463ea6aac1c7830e2c8
7
- data.tar.gz: c2e8a07e31c6157eb0f95d62ad32d18abe360db90b1ccef5dd1506111c4f56329759eba2de9420dc8c6fffe12eee6ea7a4c4318a3c146d80d13d94b28f16855b
6
+ metadata.gz: be6bb6ffcde878634ca899b72a7f0ab44ee6e706a3781bba215ae8aa00167c078ca236fa892857e49247b8ddb7fe3c024b44a781426e3a4795817c85f851d9f1
7
+ data.tar.gz: 59f96325a858d7494c9e0754d86cbb113243eeeec041e35108ba42f4a7297a975c1b173348a9407b4cab65356806b0a005645d4df3130b258b12533fed9207c0
data/README.md CHANGED
@@ -15,16 +15,16 @@ gem install secros
15
15
  ####STEP 2. Generate template
16
16
 
17
17
  ```bash
18
- secros your_generate_path
18
+ secros your-generate-path
19
19
  ```
20
20
 
21
21
  ####STEP 2. Add secrets to secrets.yml
22
22
 
23
23
  ```yml
24
24
  values:
25
- key: value
25
+ aws_secret_key: aws_secret_key_value
26
26
  files:
27
- file: file_name
27
+ ssh_identity: id_rsa
28
28
  ```
29
29
 
30
30
  ###Access secrets
@@ -40,6 +40,6 @@ also `gem install secros` and `require 'secros'` works.
40
40
  ###STEP 2. Access secrets via key
41
41
 
42
42
  ```rb
43
- Secros.new(your_generate_path).values(:key) # == 'value'
44
- Secros.new(your_generate_path).files(:file) # == "#{your_generate_path}/files/file_name}"
43
+ Secros.new(your_generate_path).values[:aws_secret_key] # == 'aws_secret_key_value'
44
+ Secros.new(your_generate_path).files[:ssh_identity]) # == "#{your_generate_path}/files/id_rsa}"
45
45
  ```
@@ -7,12 +7,14 @@ class Secros
7
7
  @root_path = path
8
8
  end
9
9
 
10
- def value(key)
11
- secrets[:values][normalized_key(key)]
10
+ def values
11
+ @values ||= secrets[:values]
12
12
  end
13
13
 
14
- def file(key)
15
- File.join(secret_files_path, secrets[:files][normalized_key(key)])
14
+ def files
15
+ @files ||= deep_apply_block(secrets[:files]) do |file|
16
+ File.join(secret_files_path, file)
17
+ end
16
18
  end
17
19
 
18
20
  private
@@ -21,7 +23,13 @@ class Secros
21
23
  @secrets ||= YAML.load(File.read(secrets_path)).deep_symbolize_keys
22
24
  end
23
25
 
24
- def normalized_key(key)
25
- key.to_s.to_sym
26
+ def deep_apply_block(obj, &block)
27
+ if obj.is_a?(Array)
28
+ obj.map { |x| block.call(x) }
29
+ elsif obj.is_a?(Hash)
30
+ Hash[obj.map { |k, v| [k, block.call(v)] }]
31
+ else
32
+ block.call(obj)
33
+ end
26
34
  end
27
35
  end
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'secros'
3
- s.version = '0.1.8'
3
+ s.version = '0.2.0'
4
4
  s.authors = ['Tetsuri Moriya']
5
5
  s.email = ['tetsuri.moriya@gmail.com']
6
6
  s.summary = 'Secrets management gem'
@@ -8,8 +8,8 @@ describe 'test' do
8
8
  `ruby #{File.join(root_path, 'lib', 'generate.rb')} #{generate_path}`
9
9
  `cp #{File.join(root_path, 'spec', 'secrets.yml')} #{generate_path}/secrets.yml`
10
10
  secros = Secros.new(generate_path)
11
- secros.value(:test_key).should eq('test_value')
12
- secros.file(:test_file_key).should eq("#{generate_path}/files/test_file_value")
11
+ secros.values[:test_key].should eq('test_value')
12
+ secros.files[:test_file_key].should eq("#{generate_path}/files/test_file_value")
13
13
  `rm -rf #{generate_path}`
14
14
  end
15
15
  end
@@ -1,2 +1,2 @@
1
- values: {}
2
- files: {}
1
+ values:
2
+ files:
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: secros
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.8
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tetsuri Moriya
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-04 00:00:00.000000000 Z
11
+ date: 2014-07-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -51,7 +51,6 @@ files:
51
51
  - Gemfile.lock
52
52
  - README.md
53
53
  - bin/secros
54
- - config/secrets.yml
55
54
  - lib/generate.rb
56
55
  - lib/initialize.rb
57
56
  - lib/secros.rb
@@ -1,4 +0,0 @@
1
- values:
2
- hoge: piyo
3
- files:
4
- mage: meg.pem