class Dckerize::Generator

Attributes

name[RW]

Public Class Methods

new(name) click to toggle source
# File lib/dckerize/generator.rb, line 4
def initialize(name)
  @name = name
end

Public Instance Methods

get_binding() click to toggle source
# File lib/dckerize/generator.rb, line 8
def get_binding
  binding
end
templates() click to toggle source
# File lib/dckerize/generator.rb, line 12
def templates
  Dckerize.templates
end
up() click to toggle source
# File lib/dckerize/generator.rb, line 16
def up

  raise Dckerize::Runner::DOCKERFILE_EXISTS if File.exists?('Dockerfile.development')
  raise Dckerize::Runner::DOCKERCOMPOSE_EXISTS if File.exists?('docker-compose.yml')

  create_from_template('Dockerfile.erb', 'Dockerfile.development')
  create_from_template('webapp.conf.erb', "webapp.conf")
  create_from_template('wait-for-postgres.sh.erb', "wait-for-postgres.sh")
  create_from_template('rails-env.conf.erb', "rails-env.conf")
  create_from_template('docker-compose.yml.erb', "docker-compose.yml")
end

Private Instance Methods

create_from_template(template_name, output_file) click to toggle source
# File lib/dckerize/generator.rb, line 29
def create_from_template(template_name, output_file)
  template = ERB.new(File.read("#{templates}/#{template_name}"), nil, '-')
  result = template.result(binding)
  File.open("#{output_file}", 'w') { |file| file.write(result) }

  # add execution permissions for setup.sh
  system "chmod +x #{output_file}" if output_file == 'wait-for-postgres.sh'
end