Class: Leml::Core

Inherits:
Object
  • Object
show all
Defined in:
lib/leml/core.rb

Constant Summary collapse

KEY =
Rails.root.join('config', 'leml.key')
SECRETS =
Rails.root.join('config', 'leml.yml')

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeCore

Returns a new instance of Core.



65
66
67
68
69
70
# File 'lib/leml/core.rb', line 65

def initialize
  return unless File.exist?(KEY)
  key = File.read(KEY).chop
  @encryptor = ActiveSupport::MessageEncryptor.new(key, cipher: 'aes-256-cbc')
  @secrets = YAML.load_file(SECRETS)
end

Class Method Details

.setupObject



10
11
12
13
14
# File 'lib/leml/core.rb', line 10

def setup
  key_initialize
  yaml_initialize
  complete_message
end

Instance Method Details

#editObject



77
78
79
80
81
82
83
84
85
# File 'lib/leml/core.rb', line 77

def edit
  no_editor if ENV['EDITOR'].blank?
  Dir.mktmpdir do |dir|
    tmp_file = create_decrypted_tmp_file(dir)
    system("#{ENV['EDITOR']} #{tmp_file.to_s}")
    reload_secrets_file(tmp_file)
    puts 'OK, your secrets is encrypted.'
  end
end

#merge_secretsObject



72
73
74
75
# File 'lib/leml/core.rb', line 72

def merge_secrets
  return unless File.exists?(KEY) && File.exists?(SECRETS)
  Rails.application.secrets.merge!(decrypt(@secrets)[Rails.env].deep_symbolize_keys) if @secrets
end

#showObject



87
88
89
90
# File 'lib/leml/core.rb', line 87

def show
  return unless @secrets
  print(decrypt(@secrets).to_yaml)
end