Class: ThreddedCreateApp::Generator

Inherits:
Tasks::Base show all
Defined in:
lib/thredded_create_app/generator.rb

Instance Attribute Summary

Attributes inherited from Tasks::Base

#app_hostname, #app_name, #app_path

Instance Method Summary collapse

Methods inherited from Tasks::Base

#after_bundle, #before_bundle, #devise_form_fields_begin_pattern, #webpack_js?

Methods included from RunCommand

#run

Methods included from Logging

#log_command, #log_error, #log_info, #log_stderr, #log_verbose, #log_warn, #program_name

Constructor Details

#initialize(**options) ⇒ Generator

Returns a new instance of Generator.



24
25
26
27
# File 'lib/thredded_create_app/generator.rb', line 24

def initialize(**options)
  super
  @options = options
end

Instance Method Details

#generateObject



33
34
35
36
37
38
39
40
41
42
# File 'lib/thredded_create_app/generator.rb', line 33

def generate
  log_verbose "Started: #{inspect}"
  FileUtils.mkdir_p(app_path)
  in_app_env do
    run 'git init .'
    @tasks.each(&:before_bundle)
    bundle
    @tasks.each(&:after_bundle)
  end
end

#run_tests!Object



44
45
46
47
48
49
# File 'lib/thredded_create_app/generator.rb', line 44

def run_tests!
  log_info 'Running tests'
  in_app_env do
    run 'bundle exec rspec -fd'
  end
end

#summaryObject



29
30
31
# File 'lib/thredded_create_app/generator.rb', line 29

def summary
  tasks.map { |t| "* #{t.summary}" }.join("\n")
end