Sha256: 7f0a9106258c3832f5548a497265d81fa67a2019f2ac7b13e6523c3d204964ea

Contents?: true

Size: 973 Bytes

Versions: 3

Compression:

Stored size: 973 Bytes

Contents

require "thor"

module Boty
  class CLI < Thor
    include Thor::Actions
    class_option :verbose, type: :boolean, default: true

    attr_reader :bot_name, :company, :api_key

    source_root File.expand_path("../../../template", __FILE__)

    desc "new [BOT_NAME]",
         "Creates a BOT_NAME dir with your new bot structure."
    def new(bot_name)
      @bot_name = bot_name
      acquire_bot_info
      directory "project", bot_name, verbose: verbose
      after_create
    end

    private

    def verbose
      options[:verbose]
    end

    def acquire_bot_info
      @company = ask("What is your Slack company name?") || "acme"
      @api_key = ask("What is the #{@bot_name} api key?") || "omg-lol-bbq"
    end

    def after_create
      inside @bot_name do
        # for some reason the example .rspec isn't been copied
        create_file ".rspec", "--require=spec_helper"
        run "chmod +x bot"
        run "bundle install"
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
boty-0.0.12 lib/boty/cli.rb
boty-0.0.11 lib/boty/cli.rb
boty-0.0.10 lib/boty/cli.rb