Class: RailsEngineToolkit::Actions::NewEngineModel
- Inherits:
-
Object
- Object
- RailsEngineToolkit::Actions::NewEngineModel
- Defined in:
- lib/rails_engine_toolkit/actions/new_engine_model.rb
Instance Method Summary collapse
- #call ⇒ Object
-
#initialize(argv, stdout:, root:, stdin: nil, stderr: nil) ⇒ NewEngineModel
constructor
A new instance of NewEngineModel.
Constructor Details
#initialize(argv, stdout:, root:, stdin: nil, stderr: nil) ⇒ NewEngineModel
Returns a new instance of NewEngineModel.
6 7 8 9 10 11 12 13 14 |
# File 'lib/rails_engine_toolkit/actions/new_engine_model.rb', line 6 def initialize(argv, stdout:, root:, stdin: nil, stderr: nil) @engine_name = argv.shift @generator_args = argv @stdout = stdout @stdin = stdin @stderr = stderr @root = Pathname(root) @project = Project.new(@root) end |
Instance Method Details
#call ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/rails_engine_toolkit/actions/new_engine_model.rb', line 16 def call @project.validate_root! raise ValidationError, 'Engine name is required.' if @engine_name.to_s.empty? raise ValidationError, 'Model name is required.' if @generator_args.empty? engine_path = @project.engine_path(@engine_name) raise ValidationError, "Engine does not exist: #{engine_path}" unless engine_path.directory? Utils.safe_system('bin/rails', 'g', 'model', *@generator_args, chdir: engine_path) UpdateEngineReadme.new([@engine_name], stdin: nil, stdout: @stdout, stderr: nil, root: @root).call @stdout.puts("Model created inside #{engine_path}") end |