class Nib::Integrate::Integrator
performs docker-compose integration
Attributes
args[R]
config_path[R]
current_arg[R]
current_port[R]
Public Class Methods
down(args, config_path = Nib::Integrate::ConfigFile::PATH)
click to toggle source
# File lib/nib/integrate/integrator.rb, line 10 def down(args, config_path = Nib::Integrate::ConfigFile::PATH) new(args, config_path).down end
new(args, config_path)
click to toggle source
# File lib/nib/integrate/integrator.rb, line 17 def initialize(args, config_path) @args = args @config_path = config_path @current_port = initial_port end
up(args, config_path = Nib::Integrate::ConfigFile::PATH)
click to toggle source
# File lib/nib/integrate/integrator.rb, line 6 def up(args, config_path = Nib::Integrate::ConfigFile::PATH) new(args, config_path).up end
Public Instance Methods
down()
click to toggle source
# File lib/nib/integrate/integrator.rb, line 31 def down args.map do |arg| @current_arg = arg down_command end end
up()
click to toggle source
# File lib/nib/integrate/integrator.rb, line 23 def up args.map do |arg| @current_arg = arg @current_port = current_integration_object.port + 1 command end end
Private Instance Methods
app()
click to toggle source
# File lib/nib/integrate/integrator.rb, line 40 def app apps.find { |a| a['name'] == current_arg } end
apps()
click to toggle source
# File lib/nib/integrate/integrator.rb, line 44 def apps @apps ||= config['apps'] end
cd_command()
click to toggle source
# File lib/nib/integrate/integrator.rb, line 68 def cd_command "cd #{app['path']}" end
clean_files_command()
click to toggle source
# File lib/nib/integrate/integrator.rb, line 76 def clean_files_command 'rm .nib-integrate*' end
command()
click to toggle source
# File lib/nib/integrate/integrator.rb, line 52 def command integration_file.write_empty_config(app['name']) [ cd_command, docker_compose_command, clean_files_command ].join(' && ') end
config()
click to toggle source
# File lib/nib/integrate/integrator.rb, line 96 def config @config ||= config_file.read(config_path) end
config_file()
click to toggle source
# File lib/nib/integrate/integrator.rb, line 100 def config_file ConfigFile end
current_integration_object()
click to toggle source
# File lib/nib/integrate/integrator.rb, line 92 def current_integration_object integration_file.write(app['name'], current_port) end
docker_compose_command()
click to toggle source
# File lib/nib/integrate/integrator.rb, line 72 def docker_compose_command [run_command, integration_file_flag, up_command].compact.join(' ') end
down_command()
click to toggle source
# File lib/nib/integrate/integrator.rb, line 61 def down_command [ cd_command, "docker-compose -f #{app['compose_file']} stop" ].join(' && ') end
initial_port()
click to toggle source
# File lib/nib/integrate/integrator.rb, line 48 def initial_port @initial_port ||= config['initial_port'] end
integration_file()
click to toggle source
# File lib/nib/integrate/integrator.rb, line 104 def integration_file IntegrationFile end
integration_file_flag()
click to toggle source
# File lib/nib/integrate/integrator.rb, line 88 def integration_file_flag "-f #{current_integration_object.path}" end
run_command()
click to toggle source
# File lib/nib/integrate/integrator.rb, line 80 def run_command 'docker-compose -f .nib-integrate-empty-config-file' end
up_command()
click to toggle source
# File lib/nib/integrate/integrator.rb, line 84 def up_command "up -d #{app['service']}" end