Method: Jets::Commands::Build#build_child_template

Defined in:
lib/jets/commands/build.rb

#build_child_template(path) ⇒ Object

path: app/controllers/comments_controller.rb path: app/jobs/easy_job.rb



76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
# File 'lib/jets/commands/build.rb', line 76

def build_child_template(path)
  md = path.match(%r{app/(.*?)/}) # extract: controller, job or function
  process_class = md[1].classify
  builder_class = "Jets::Cfn::Builders::#{process_class}Builder".constantize

  # Examples:
  #   Jets::Cfn::Builders::ControllerBuilder.new(PostsController)
  #   Jets::Cfn::Builders::JobBuilder.new(EasyJob)
  #   Jets::Cfn::Builders::RuleBuilder.new(CheckRule)
  #   Jets::Cfn::Builders::FunctionBuilder.new(Hello)
  #   Jets::Cfn::Builders::FunctionBuilder.new(HelloFunction)
  app_class = Jets::Klass.from_path(path)
  builder = builder_class.new(app_class)
  unless Jets.poly_only? && app_class == Jets::PreheatJob
    builder.build
  end
end