You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							37 lines
						
					
					
						
							997 B
						
					
					
				
			
		
		
	
	
							37 lines
						
					
					
						
							997 B
						
					
					
				| module Configuration | |
|   class EnvConfigurationService < ConfigurationService | |
|   private | |
|  | |
|     def config_present? | |
|       !ENV["S3_CONFIG"].nil? || !ENV["REDIS_CONFIG"].nil? | |
|     end | |
|  | |
|     def read_config | |
|       unless config_present? | |
|         @logger.warn("Could not find S3_CONFIG or REDIS_CONFIG in the environment variables!") | |
|         return {} | |
|       end | |
|  | |
|       config = {} | |
|       assign_config(config, :"aws-s3-bucket", "S3_CONFIG") | |
|       assign_config(config, :redis, "REDIS_CONFIG") | |
|       config | |
|     end | |
|  | |
|     def assign_config(config, symbol, env_variable) | |
|       config_hash = parse_json_config(env_variable) | |
|       config[symbol] = config_hash unless config_hash.empty? | |
|     end | |
|  | |
|     def parse_json_config(env_variable_name) | |
|       if ENV[env_variable_name].present? | |
|         begin | |
|           return JSON.parse(ENV[env_variable_name], { symbolize_names: true }) | |
|         rescue StandardError | |
|           @logger.warn("Could not parse #{env_variable_name}!") | |
|         end | |
|       end | |
|       {} | |
|     end | |
|   end | |
| end
 | |
| 
 |