Class: Workato::Connector::Sdk::AccountProperties

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/workato/connector/sdk/account_properties.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.from_csv(path = './account_properties.csv') ⇒ Object



31
32
33
34
35
36
# File 'lib/workato/connector/sdk/account_properties.rb', line 31

def self.from_csv(path = './account_properties.csv')
  props = CSV.foreach(path, headers: true, return_headers: false).to_h do |row|
    [row[0], row[1]]
  end
  instance.load_data(props)
end

.from_encrypted_yaml(path = DEFAULT_ENCRYPTED_ACCOUNT_PROPERTIES_PATH, key_path = nil) ⇒ Object



20
21
22
23
24
25
26
27
28
29
# File 'lib/workato/connector/sdk/account_properties.rb', line 20

def self.from_encrypted_yaml(path = DEFAULT_ENCRYPTED_ACCOUNT_PROPERTIES_PATH, key_path = nil)
  load_data(
    ActiveSupport::EncryptedConfiguration.new(
      config_path: path,
      key_path: key_path || DEFAULT_MASTER_KEY_PATH,
      env_key: DEFAULT_MASTER_KEY_ENV,
      raise_if_missing_key: true
    ).config
  )
end

.from_yaml(path = DEFAULT_ACCOUNT_PROPERTIES_PATH) ⇒ Object



14
15
16
17
18
# File 'lib/workato/connector/sdk/account_properties.rb', line 14

def self.from_yaml(path = DEFAULT_ACCOUNT_PROPERTIES_PATH)
  File.open(path) do |f|
    instance.load_data(YAML.safe_load(ERB.new(f.read).result, permitted_classes: [::Symbol]).to_hash)
  end
end

Instance Method Details

#get(key) ⇒ Object



45
46
47
48
# File 'lib/workato/connector/sdk/account_properties.rb', line 45

def get(key)
  @data ||= {}
  @data[key.to_s]
end

#load_data(props = {}) ⇒ Object



55
56
57
# File 'lib/workato/connector/sdk/account_properties.rb', line 55

def load_data(props = {})
  props.each { |k, v| put(k, v) }
end

#put(key, value) ⇒ Object



50
51
52
53
# File 'lib/workato/connector/sdk/account_properties.rb', line 50

def put(key, value)
  @data ||= {}
  @data[key.to_s] = value.to_s
end