Module: Momoka

Defined in:
lib/momoka.rb,
lib/momoka/cli.rb,
lib/momoka/version.rb

Defined Under Namespace

Classes: CLI

Constant Summary collapse

VERSION =
'1.0.4'

Class Method Summary collapse

Class Method Details

.encrypt(text, key_file: nil) ⇒ Object



34
35
36
37
38
39
40
41
42
43
# File 'lib/momoka.rb', line 34

def encrypt(text, key_file: nil)
  key = default_key(key_file: key_file)

  enc = OpenSSL::Cipher.new('AES-256-CBC').encrypt
  enc.key = key.byteslice(0, 32)
  enc.iv = key.byteslice(32, 16)

  encrypted = Base64.strict_encode64(enc.update(text) + enc.final)
  ":momoka:#{encrypted}:"
end

.load(*filenames, key_file: nil) ⇒ Object



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

def load(*filenames, key_file: nil)
  env = Dotenv.parse(*filenames)
  decrypt!(env, key_file: key_file)
  env.each {|k, v| ENV[k] ||= v}
end

.load!(*filenames, key_file: nil) ⇒ Object



16
17
18
19
20
# File 'lib/momoka.rb', line 16

def load!(*filenames, key_file: nil)
  env = Dotenv.parse(*filenames, overwrite: true)
  decrypt!(env, key_file: key_file)
  env.each {|k, v| ENV[k] ||= v}
end

.overload(*filenames, key_file: nil) ⇒ Object



22
23
24
25
26
# File 'lib/momoka.rb', line 22

def overload(*filenames, key_file: nil)
  env = Dotenv.parse(*filenames)
  decrypt!(env, key_file: key_file)
  env.each {|k, v| ENV[k] = v}
end

.overload!(*filenames, key_file: nil) ⇒ Object



28
29
30
31
32
# File 'lib/momoka.rb', line 28

def overload!(*filenames, key_file: nil)
  env = Dotenv.parse(*filenames, overwrite: true)
  decrypt!(env, key_file: key_file)
  env.each {|k, v| ENV[k] = v}
end