secros 0.1.8 → 0.2.0

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