Class: Keys::Generator

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

Instance Method Summary collapse

Constructor Details

#initializeGenerator

Returns a new instance of Generator.



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/keys.rb', line 20

def initialize
  # If the secure keys identifier is not set, set it to 'secure-keys'
  ENV['SECURE_KEYS_IDENTIFIER'] = 'secure-keys' unless ENV.key?('SECURE_KEYS_IDENTIFIER')

  puts "🔔 You're using a custom delimiter '#{Keys::Globals.key_delimiter}'" unless Keys::Globals.key_delimiter.eql?(Keys::Globals.default_key_delimiter)
  puts "🔔 You're using a custom key access identifier '#{Keys::Globals.key_access_identifier}'" unless Keys::Globals.key_access_identifier.eql?(Keys::Globals.default_key_access_identifier)

  # Configure cipher
  self.cipher = Keys::OpenSSL::Cipher.new

  # Configure the secret source based on the environment
  if Keys::Globals.ci?
    self.secrets_source = Keys::Core::Environment::CI.new
  else
    self.secrets_source = Keys::Core::Environment::Keychain.new
  end

  # Define the keys that we want to map
  self.secret_keys = secrets_source.fetch(key: Keys::Globals.key_access_identifier)
                                   .to_s
                                   .split(Keys::Globals.key_delimiter)
                                   .map(&:strip)

  # Add the keys that we want to map
  self.mapped_keys = secret_keys.map do |key|
    encrypted_data = cipher.encrypt(value: secrets_source.fetch(key:))
    # Convert the first key chart to downcase
    key[0] = key[0].downcase
    { name: key, **encrypted_data }
  end
end

Instance Method Details

#setupObject



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/keys.rb', line 52

def setup
  pre_actions

  package = Keys::Swift::Package.new
  package.generate

  writer = Keys::Swift::Writer.new(mapped_keys: mapped_keys,
                                   secure_key_bytes: cipher.secure_key_bytes)
  writer.write

  xcframework = Keys::Swift::XCFramework.new
  xcframework.generate

  post_actions
end