Class: RailsForge::Generators::DevopsGenerator

Inherits:
BaseGenerator show all
Defined in:
lib/railsforge/generators/devops_generator.rb

Overview

DevOps generator

Constant Summary

Constants inherited from BaseGenerator

BaseGenerator::TEMPLATE_VERSION

Instance Method Summary collapse

Methods inherited from BaseGenerator

#camelize, #find_rails_app_path, #underscore, #validate_name!

Constructor Details

#initialize(name = "app", options = {}) ⇒ DevopsGenerator

Initialize the generator



11
12
13
14
15
16
17
# File 'lib/railsforge/generators/devops_generator.rb', line 11

def initialize(name = "app", options = {})
  super(name, options)
  @docker_image = options[:docker_image] || "railsforge/#{name}"
  @ci_provider = options[:ci_provider] || "github"
  @ruby_version = options[:ruby_version] || "3.2.0"
  @node_version = options[:node_version] || "18"
end

Instance Method Details

#generateObject

Generate DevOps files



20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/railsforge/generators/devops_generator.rb', line 20

def generate
  return "Not in a Rails application directory" unless @base_path

  results = []
  results << create_dockerfile
  results << create_docker_compose
  results << create_dockerignore
  results << create_github_workflow if @ci_provider == "github"
  results << create_gitlab_ci if @ci_provider == "gitlab"

  results.join("\n")
end