class Warm::Boot::Commands::RailsNew

Attributes

cmd[RW]
opts[RW]
sh[RW]

Public Class Methods

new(opts) click to toggle source
# File lib/warm/boot/commands/rails_new.rb, line 8
def initialize(opts)
  @opts = opts
  @cmd = ["rails new #{opts.app_name} --quiet"]
  @sh = TTY::Command.new
end

Public Instance Methods

execute() click to toggle source
# File lib/warm/boot/commands/rails_new.rb, line 21
def execute
  string_builder
  spinner = TTY::Spinner.new("[:spinner] warm-boot ...", format: :dots_4)
  spinner.auto_spin
  check_rails
  sh.run(cmd.join)
  spinner.stop("Done!")
end
string_builder() click to toggle source
# File lib/warm/boot/commands/rails_new.rb, line 14
def string_builder
  api
  database
  coffeescript
  webpacker
end

Private Instance Methods

api() click to toggle source
# File lib/warm/boot/commands/rails_new.rb, line 46
def api
  cmd << " --api" if opts.api_only
end
check_rails() click to toggle source
# File lib/warm/boot/commands/rails_new.rb, line 32
def check_rails
  return unless rails_gem_installed? == false

  sh.run("gem install rails")
end
coffeescript() click to toggle source
# File lib/warm/boot/commands/rails_new.rb, line 50
def coffeescript
  cmd << " --skip-coffee" unless opts.coffeescript
end
database() click to toggle source
# File lib/warm/boot/commands/rails_new.rb, line 42
def database
  cmd << " --database=#{opts.database}"
end
framework() click to toggle source
# File lib/warm/boot/commands/rails_new.rb, line 58
def framework
  opts.framework == "none" ? "" : "=#{opts.framework}"
end
rails_gem_installed?() click to toggle source
# File lib/warm/boot/commands/rails_new.rb, line 38
def rails_gem_installed?
  `gem list -i "^rails$"`.strip
end
webpacker() click to toggle source
# File lib/warm/boot/commands/rails_new.rb, line 54
def webpacker
  cmd << " --webpack#{framework}" if opts.webpacker
end