class SuperTopSecret::Injector
Public Class Methods
generate_config(app_file, secret_file)
click to toggle source
# File lib/super_top_secret/injector.rb, line 3 def self.generate_config(app_file, secret_file) app_hash = YAML.load(File.read(app_file)) secret_hash = YAML.load(File.read(secret_file)) injected_hash = create_new_hash(app_hash, secret_hash) write_new_hash_to_file(injected_hash) end
Private Class Methods
create_new_hash(app_hash, secret_hash)
click to toggle source
# File lib/super_top_secret/injector.rb, line 13 def self.create_new_hash(app_hash, secret_hash) injected_hash = app_hash.dup app_hash.each do |key, val| if val.is_a?(Hash) # Nested val.each do |nested_key, nested_val| nested_val = secret_hash[key][nested_val] if secret_field?(nested_val) injected_hash[key][nested_key] = nested_val end else val = secret_hash[val] if secret_field?(val) injected_hash[key] = val end end return injected_hash end
secret_field?(val)
click to toggle source
# File lib/super_top_secret/injector.rb, line 31 def self.secret_field?(val) val.to_s.include?("53CR3T_") end
write_new_hash_to_file(injected_hash)
click to toggle source
# File lib/super_top_secret/injector.rb, line 35 def self.write_new_hash_to_file(injected_hash) File.open("config/application.yml", "w+"){|f| f.write(injected_hash.to_yaml)} end