Sha256: fff5691dade17b22fd2f29f4537e0968eb0906b079b12aedef807e59ca56d05b

Contents?: true

Size: 988 Bytes

Versions: 4

Compression:

Stored size: 988 Bytes

Contents

require "thor"

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

    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

4 entries across 4 versions & 1 rubygems

Version Path
boty-0.0.16 lib/boty/cli.rb
boty-0.0.15 lib/boty/cli.rb
boty-0.0.14 lib/boty/cli.rb
boty-0.0.13 lib/boty/cli.rb