class App

Public Instance Methods

help() click to toggle source
# File lib/juans_world/commands/app.rb, line 26
def help
  puts "#{self.class.description}\n\n#{parser.to_s}"
end
run() click to toggle source
# File lib/juans_world/commands/app.rb, line 12
def run
  @app_name = args[0]
  run_command rails_new
  Dir.chdir("./#{@app_name}")
  run_command procfile
  run_command bin_up
  run_command bundle_add
  run_command bundle_add_dev_test
  run_command db_up
  run_command rspec
  run_command devise
  run_command tailwindcss
end

Private Instance Methods

bin_up() click to toggle source
# File lib/juans_world/commands/app.rb, line 63
def bin_up
  "echo -e '#!/bin/bash\n\nforeman start -f Procfile.dev' > bin/up && chmod +x bin/up"
end
bundle_add() click to toggle source
# File lib/juans_world/commands/app.rb, line 67
def bundle_add
  'bundle add redis devise name_of_person rack-mini-profiler flamegraph stackprof memory_profiler active_model_serializers pundit bullet rack-attack'
end
bundle_add_dev_test() click to toggle source
# File lib/juans_world/commands/app.rb, line 71
def bundle_add_dev_test
  "bundle add foreman rspec-rails pry rubocop rubocop-rails factory_bot_rails " \
  "capybara chromedriver-helper selenium-webdriver shoulda-matchers " \
  "dotenv-rails simplecov --group 'development, test'"
end
db_up() click to toggle source
# File lib/juans_world/commands/app.rb, line 77
def db_up
  'rails db:create && rails db:migrate'
end
devise() click to toggle source
# File lib/juans_world/commands/app.rb, line 85
def devise
  'rails generate devise:install && rails generate devise User && rails g devise:views'
end
procfile() click to toggle source
# File lib/juans_world/commands/app.rb, line 59
def procfile
   "echo -e 'web: bundle exec rails s\nwebpacker: ./bin/webpack-dev-server' > Procfile.dev"
end
rails_new() click to toggle source
# File lib/juans_world/commands/app.rb, line 49
def rails_new
  "rails new #{@app_name} " \
  "-d #{options[:database] } " \
  "#{'--skip-sprockets' if options[:'skip-sprockets']} " \
  "#{'--skip-coffee' if options[:'skip-coffee']} " \
  "#{'--skip-test' if options[:'skip-test']} " \
  "#{'--skip-turbolinks' if options[:'skip-turbolinks']} " \
  "--webpack=#{options[:webpack]}"
end
rspec() click to toggle source
# File lib/juans_world/commands/app.rb, line 81
def rspec
  'rails generate rspec:install'
end
run_command(cmd) click to toggle source
# File lib/juans_world/commands/app.rb, line 32
def run_command(cmd)
  puts 'RUN: '
  puts "#{cmd}\n\n"

  Open3.popen3(cmd) do |stdout, stderr, status, thread|
    while err=stderr.gets do 
      puts(err) 
    end

    while out=stdout.gets do 
      puts(out) 
    end

  rescue IOError => e
  end
end
tailwindcss() click to toggle source
# File lib/juans_world/commands/app.rb, line 89
def tailwindcss
  "yarn add tailwindcss --dev " \
  "&& mkdir app/javascript/css " \
  "&& node_modules/.bin/tailwind init " \
  "&& sed -i '/  plugins: \[/a\ \ \ \ require('\"'\"'tailwindcss'\"'\"'),' postcss.config.js"
end