dev_secrets 0.1.0 → 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: 750bb9e189e74ed2362a9701a49efba7802f9b1b
4
- data.tar.gz: 98f5333713e03b22f4da788826bb61305fc47544
3
+ metadata.gz: b74233873f6fc682157fceb6b886260c95df36fe
4
+ data.tar.gz: e72f90e0fd23ca963f9fc4b53b647a3b4eae21ca
5
5
  SHA512:
6
- metadata.gz: d4e2751f6cba44ee744c96b0359e1a2826d6d0148f61092f80281ce44a647c68046b0ed692a1f1d3f6222c1f5af4b4aafca37f19b43f40d1ad0355905c1d8008
7
- data.tar.gz: c28d2d7208978b3142f11ebb4646c836273a7624afaddc20e7827e918470af990d57d077cf02d2a15aac2d3bc0335b91da9cd96a85f64d291d5746c961c0a980
6
+ metadata.gz: 5468a44e3db5aa82f0b5bd3a7f40e142bd1745ef5a27dda851db372deb74728d78c7a765134282dcfe302ab01e777d352ce15df4e3a3d45d877ead205ce1ae5e
7
+ data.tar.gz: f5039fec8f3125c5e9690bfad2653be61004a21590b6af469a3b7025d7c85b762079f9e7efc50eb20c5b3fe91d8660a987f50979e7de62a390ef8fb17b4f4f01
data/lib/dev_secrets.rb CHANGED
@@ -1,7 +1,9 @@
1
1
  module DevSecrets
2
+ GLOB = "secrets*.yml{,.enc}"
3
+ GLOB_ENC = "secrets*.yml.enc"
2
4
  class Railtie < ::Rails::Railtie
3
5
  initializer "dev_secrets.set_secrets_glob_pattern" do |app|
4
- app.config.paths["config/secrets"].glob = "secrets*.yml{,.enc}"
6
+ app.config.paths["config/secrets"].glob = DevSecrets::GLOB
5
7
  end
6
8
  end
7
9
  end
@@ -39,8 +41,41 @@ module Rails
39
41
  alias parse_original parse
40
42
  alias parse _dev_secrets_parse
41
43
 
44
+ def _dev_secrets_read_for_editing
45
+ path, contents = _dev_secrets_read_first
46
+ tmp_path = File.join(Dir.tmpdir, File.basename(path))
47
+ IO.binwrite(tmp_path, contents)
48
+
49
+ puts "Editing #{path}"
50
+ yield tmp_path
51
+
52
+ _dev_secrets_write(path, File.read(tmp_path))
53
+ ensure
54
+ FileUtils.rm(tmp_path) if File.exist?(tmp_path)
55
+ end
56
+
57
+ alias read_for_editing_original read_for_editing
58
+ alias read_for_editing _dev_secrets_read_for_editing
59
+
42
60
  private
43
61
 
62
+ def _dev_secrets_read_first
63
+ return_val = nil
64
+ Dir.glob(@root.join("config", DevSecrets::GLOB_ENC)).each do |path|
65
+ begin
66
+ return_val = [path, decrypt(IO.binread(path))]
67
+ break
68
+ rescue ActiveSupport::MessageEncryptor::InvalidMessage
69
+ end
70
+ end
71
+ return_val or raise ActiveSupport::MessageEncryptor::InvalidMessage # Nothing decrypted correctly
72
+ end
73
+
74
+ def _dev_secrets_write(path, contents)
75
+ IO.binwrite("#{path}.tmp", encrypt(contents))
76
+ FileUtils.mv("#{path}.tmp", path)
77
+ end
78
+
44
79
  def _dev_secrets_parse_file(path, env, all_secrets)
45
80
  require "erb"
46
81
  secrets = YAML.load(ERB.new(preprocess(path)).result) || {}
@@ -1,3 +1,3 @@
1
1
  module DevSecrets
2
- VERSION = '0.1.0'
2
+ VERSION = '0.2.0'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dev_secrets
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jesse Kipp