Class: RailsEngineToolkit::Actions::Init

Inherits:
Object
  • Object
show all
Defined in:
lib/rails_engine_toolkit/actions/init.rb

Instance Method Summary collapse

Constructor Details

#initialize(_argv, stdin:, stdout:, root:, stderr: nil) ⇒ Init

Returns a new instance of Init.



6
7
8
9
10
11
12
# File 'lib/rails_engine_toolkit/actions/init.rb', line 6

def initialize(_argv, stdin:, stdout:, root:, stderr: nil)
  @stdin = stdin
  @stdout = stdout
  @stderr = stderr
  @root = Pathname(root)
  @project = Project.new(@root)
end

Instance Method Details

#callObject



14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/rails_engine_toolkit/actions/init.rb', line 14

def call
  @project.validate_root!
  answers = prompt_values

  FileUtils.mkdir_p(@project.config_file.dirname)
  @project.config_file.write(
    Templates.render('engine_toolkit_yml', answers)
  )

  @stdout.puts("Created #{@project.config_file}")
  @stdout.puts('Edit this file to customize the toolkit for your project:')
  @stdout.puts("  #{@project.config_file}")
end