class Doppler::Client
Constants
- MAX_RETRIES
Public Class Methods
new()
click to toggle source
# File lib/doppler/client.rb, line 9 def initialize() if Doppler.api_key.nil? raise "Please provide a api key" end if Doppler.pipeline.nil? raise "Please provide a pipeline" end if Doppler.environment.nil? raise "Please provide a environment" end print "DEPRECATED: Please use the new CLI at https://docs.doppler.com/docs/enclave-installation\n\n" startup() end
Public Instance Methods
_request(endpoint, retry_count=0)
click to toggle source
# File lib/doppler/client.rb, line 72 def _request(endpoint, retry_count=0) raise ArgumentError, 'endpoint not string' unless endpoint.is_a? String uri = URI.parse(Doppler.host_url + endpoint) uri.query = URI.encode_www_form({ 'pipeline': Doppler.pipeline, 'environment': Doppler.environment }) header = { 'Content-Type': 'application/json', 'api-key': Doppler.api_key, 'client-sdk': 'ruby', 'client-version': Doppler::VERSION } begin request = Net::HTTP::Get.new(uri, header) response = Net::HTTP.start(uri.hostname, uri.port, :use_ssl => true) {|http| http.request(request) } response_data = JSON.parse(response.body) if response_data['success'] == false raise RuntimeError, response_data["messages"].join(". ") end rescue => e retry_count += 1 if retry_count > MAX_RETRIES backup_env = Doppler.read_env(Doppler.backup_filepath) if backup_env.nil? raise e end data = {} data["variables"] = backup_env return data else return _request(endpoint, retry_count) end end return response_data end
get(name)
click to toggle source
# File lib/doppler/client.rb, line 64 def get(name) return @remote_keys.fetch(name) end
get_all()
click to toggle source
# File lib/doppler/client.rb, line 68 def get_all return @remote_keys end
overwrite_env()
click to toggle source
# File lib/doppler/client.rb, line 38 def overwrite_env if @remote_keys.nil? return end @remote_keys.each do |key, value| unless Doppler.ignore_variables.include?(key) ENV[key] = value end end end
startup()
click to toggle source
# File lib/doppler/client.rb, line 27 def startup resp = self._request('/v1/variables') @remote_keys = resp.fetch("variables") write_to_backup() if Doppler.override overwrite_env() end end
write_to_backup()
click to toggle source
# File lib/doppler/client.rb, line 51 def write_to_backup unless Doppler.backup_filepath.nil? file = File.open(Doppler.backup_filepath, "w") @remote_keys.each do |key, value| file.puts key + "=" + value end file.close end end