Class: Orchestration::Environment
- Inherits:
-
Object
- Object
- Orchestration::Environment
- Defined in:
- lib/orchestration/environment.rb
Overview
rubocop:disable Metrics/ClassLength
Instance Method Summary collapse
- #app_name ⇒ Object
- #app_port ⇒ Object
- #database_configuration_path ⇒ Object
- #database_url ⇒ Object
- #database_volume ⇒ Object
- #default_app_name ⇒ Object
- #docker_api_version ⇒ Object
- #docker_compose_config(env = nil) ⇒ Object
- #docker_compose_config?(env = nil) ⇒ Boolean
- #docker_compose_path(env = nil) ⇒ Object
- #environment ⇒ Object
-
#initialize(options = {}) ⇒ Environment
constructor
A new instance of Environment.
- #mongo_url ⇒ Object
- #mongo_volume ⇒ Object
- #mongoid_configuration_path ⇒ Object
- #orchestration_configuration_path ⇒ Object
- #orchestration_dir_name ⇒ Object
- #orchestration_root ⇒ Object
- #rabbitmq_configuration_path ⇒ Object
- #rabbitmq_url ⇒ Object
- #redis_configuration_path ⇒ Object
- #root ⇒ Object
- #settings ⇒ Object
- #web_server ⇒ Object
Constructor Details
#initialize(options = {}) ⇒ Environment
Returns a new instance of Environment.
6 7 8 |
# File 'lib/orchestration/environment.rb', line 6 def initialize( = {}) @environment = .fetch(:environment, nil) end |
Instance Method Details
#app_name ⇒ Object
100 101 102 |
# File 'lib/orchestration/environment.rb', line 100 def app_name settings.get('docker.repository') end |
#app_port ⇒ Object
96 97 98 |
# File 'lib/orchestration/environment.rb', line 96 def app_port ENV.fetch('PUBLISH_PORT', ENV.fetch('WEB_PORT', '3000')).to_i end |
#database_configuration_path ⇒ Object
47 48 49 |
# File 'lib/orchestration/environment.rb', line 47 def database_configuration_path root.join('config', 'database.yml') end |
#database_url ⇒ Object
21 22 23 24 25 26 27 28 29 30 |
# File 'lib/orchestration/environment.rb', line 21 def database_url case environment when 'development' ENV.fetch('DEVELOPMENT_DATABASE_URL', nil) || ENV.fetch('DATABASE_URL', nil) when 'test' ENV.fetch('TEST_DATABASE_URL', nil) || ENV.fetch('DATABASE_URL', nil) else ENV.fetch('DATABASE_URL', nil) end end |
#database_volume ⇒ Object
122 123 124 |
# File 'lib/orchestration/environment.rb', line 122 def database_volume 'database' end |
#default_app_name ⇒ Object
83 84 85 86 87 88 89 90 |
# File 'lib/orchestration/environment.rb', line 83 def default_app_name default = docker_filter(root.basename.to_s, underscore: true) return default unless defined?(Rails) # Edge case if Rails is used as a dependency but we are not a Rails app: return default if rails_application == Object docker_filter(rails_application.name.underscore, underscore: true) end |
#docker_api_version ⇒ Object
63 64 65 |
# File 'lib/orchestration/environment.rb', line 63 def docker_api_version '3.7' end |
#docker_compose_config(env = nil) ⇒ Object
73 74 75 76 |
# File 'lib/orchestration/environment.rb', line 73 def docker_compose_config(env = nil) env ||= environment YAML.safe_load(File.read(docker_compose_path(env))) end |
#docker_compose_config?(env = nil) ⇒ Boolean
78 79 80 81 |
# File 'lib/orchestration/environment.rb', line 78 def docker_compose_config?(env = nil) env ||= environment docker_compose_path(env).file? end |
#docker_compose_path(env = nil) ⇒ Object
67 68 69 70 71 |
# File 'lib/orchestration/environment.rb', line 67 def docker_compose_path(env = nil) env ||= 'development' orchestration_root.join("docker-compose.#{env}.yml") end |
#environment ⇒ Object
10 11 12 13 14 |
# File 'lib/orchestration/environment.rb', line 10 def environment return @environment unless @environment.nil? ENV.fetch('RAILS_ENV', nil) || ENV.fetch('RACK_ENV', nil) || 'development' end |
#mongo_url ⇒ Object
32 33 34 35 36 37 38 39 40 41 |
# File 'lib/orchestration/environment.rb', line 32 def mongo_url case environment when 'development' ENV.fetch('DEVELOPMENT_MONGO_URL') { ENV.fetch('MONGO_URL', nil) } when 'test' ENV.fetch('TEST_MONGO_URL') { ENV.fetch('MONGO_URL', nil) } else ENV.fetch('MONGO_URL', nil) end end |
#mongo_volume ⇒ Object
126 127 128 |
# File 'lib/orchestration/environment.rb', line 126 def mongo_volume 'mongo' end |
#mongoid_configuration_path ⇒ Object
43 44 45 |
# File 'lib/orchestration/environment.rb', line 43 def mongoid_configuration_path root.join('config', 'mongoid.yml') end |
#orchestration_configuration_path ⇒ Object
59 60 61 |
# File 'lib/orchestration/environment.rb', line 59 def orchestration_configuration_path root.join('.orchestration.yml') end |
#orchestration_dir_name ⇒ Object
118 119 120 |
# File 'lib/orchestration/environment.rb', line 118 def orchestration_dir_name 'orchestration' end |
#orchestration_root ⇒ Object
114 115 116 |
# File 'lib/orchestration/environment.rb', line 114 def orchestration_root root.join(orchestration_dir_name) end |
#rabbitmq_configuration_path ⇒ Object
51 52 53 |
# File 'lib/orchestration/environment.rb', line 51 def rabbitmq_configuration_path root.join('config', 'rabbitmq.yml') end |
#rabbitmq_url ⇒ Object
92 93 94 |
# File 'lib/orchestration/environment.rb', line 92 def rabbitmq_url ENV.fetch('RABBITMQ_URL', nil) end |
#redis_configuration_path ⇒ Object
55 56 57 |
# File 'lib/orchestration/environment.rb', line 55 def redis_configuration_path root.join('config', 'redis.yml') end |
#root ⇒ Object
108 109 110 111 112 |
# File 'lib/orchestration/environment.rb', line 108 def root defined?(Rails) && Rails.root ? Rails.root : Pathname.new(Dir.pwd) rescue NoMethodError Pathname.new(Dir.pwd) end |
#settings ⇒ Object
104 105 106 |
# File 'lib/orchestration/environment.rb', line 104 def settings Settings.new(orchestration_configuration_path) end |
#web_server ⇒ Object
16 17 18 19 |
# File 'lib/orchestration/environment.rb', line 16 def web_server # Used at installation time only ENV.fetch('server', 'puma') end |