Sha256: 94e7d89001d01048bf2269c295d3b802d9dfce4cd07689711e0347aeafad207f

Contents?: true

Size: 1.61 KB

Versions: 14

Compression:

Stored size: 1.61 KB

Contents

require "json"
require "net/http"
require "thor"

module Codelation
  class Cli < Thor
    include Thor::Actions
    # Add the ablitity to print help for commands like:
    #   `codelation help development:install`
    # This would print help for the method:
    #   `development_install`
    # @param method [String]
    def help(method = nil)
      if method.to_s.split(":").length >= 2
        method = method.to_s.gsub(":", "_")
      elsif method.to_s == "run"
        method = "walk"
      end
      super
    end

    # Add the ablitity to run commands like:
    #   `codelation development:install`
    # This would run the defined method:
    #   `development_install`
    def method_missing(method, *args, &block)
      if method.to_s.split(":").length >= 2
        self.send(method.to_s.gsub(":", "_"), *args)
      elsif method.to_s == "run"
        self.walk(*args)
      else
        super
      end
    end

    # This is the directory where your templates should be placed.
    def self.source_root
      File.expand_path("../../../resources", __FILE__)
    end

  private

    # Print a heading to the terminal for commands that are going to be run.
    # @param heading [String]
    def print_heading(heading)
      puts "-----> #{heading}"
    end

    # Print a message to the terminal about a command that's going to run.
    # @param command [String]
    def print_command(command)
      puts "       #{command}"
    end

    # Run a command with Bash after first printing the command to the terminal.
    # @param command [String]
    def run_command(command)
      print_command(command)
      `#{command}`
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
codelation-cli-0.0.26 lib/codelation/base.rb
codelation-cli-0.0.25 lib/codelation/base.rb
codelation-cli-0.0.24 lib/codelation/base.rb
codelation-cli-0.0.23 lib/codelation/base.rb
codelation-cli-0.0.22 lib/codelation/base.rb
codelation-cli-0.0.21 lib/codelation/base.rb
codelation-cli-0.0.20 lib/codelation/base.rb
codelation-cli-0.0.19 lib/codelation/base.rb
codelation-cli-0.0.18 lib/codelation/base.rb
codelation-cli-0.0.17 lib/codelation/base.rb
codelation-cli-0.0.16 lib/codelation/base.rb
codelation-cli-0.0.15 lib/codelation/base.rb
codelation-cli-0.0.14 lib/codelation/base.rb
codelation-cli-0.0.13 lib/codelation/base.rb