Class: Decidim::Generators::DockerGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Defined in:
lib/generators/decidim/docker_generator.rb

Overview

Generates a development Rails app that works with Docker.

Instance Method Summary collapse

Instance Method Details

#after_installObject



45
46
47
48
49
# File 'lib/generators/decidim/docker_generator.rb', line 45

def after_install
  puts "Docker development app generated! To start the app just run:"
  puts "cd docker_development_app && docker-compose up"
  puts "Open the app at http://localhost:3000"
end

#build_dockerObject



31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/generators/decidim/docker_generator.rb', line 31

def build_docker
  remove_file "#{path}/Dockerfile"
  template "Dockerfile.dev.erb", "#{path}/Dockerfile"
  inside(path) do
    gsub_file "Gemfile",
              /gem "decidim(.*)"/,
              'gem "decidim", path: "/decidim"'

    run "rails generate decidim:demo"
    run "docker-compose build"
    run "docker-compose run --rm app rake db:drop db:create db:migrate db:setup"
  end
end

#cleanupObject



23
24
25
# File 'lib/generators/decidim/docker_generator.rb', line 23

def cleanup
  remove_directory_if_exists
end

#create_rails_appObject



27
28
29
# File 'lib/generators/decidim/docker_generator.rb', line 27

def create_rails_app
  Decidim::Generators::AppGenerator.start([path])
end

#source_pathsObject



17
18
19
20
21
# File 'lib/generators/decidim/docker_generator.rb', line 17

def source_paths
  [
    File.expand_path("templates", __dir__)
  ]
end