class Aid::Scripts::New

Public Class Methods

description() click to toggle source
# File lib/aid/scripts/new.rb, line 6
def self.description
  'Generates a new script in the aid directory'
end
help() click to toggle source
# File lib/aid/scripts/new.rb, line 10
      def self.help
        <<~HELP
          Usage: aid new [script name]
           Generates a new script file in the aid script directory.
           Example:
            #{colorize(:green, '$ aid new my-script-name')}
             will generate a new script called my_script_name.rb
        HELP
      end

Public Instance Methods

run() click to toggle source
# File lib/aid/scripts/new.rb, line 20
def run
  exit_with_help! unless script_name
  check_for_aid_directory!

  step "Creating #{output_path}" do
    File.open(output_path, 'wb') do |fp|
      fp.write(template)
    end

    puts
    print 'Successfully created '
    puts colorize(:green, output_path)
  end
end

Private Instance Methods

check_for_aid_directory!() click to toggle source
# File lib/aid/scripts/new.rb, line 45
def check_for_aid_directory!
  return if Dir.exist?(aid_directory)

  abort "The #{colorize(:green, aid_directory)} directory is "\
    "missing. Please run #{colorize(:green, 'aid init')} to create it."
end
class_name() click to toggle source
# File lib/aid/scripts/new.rb, line 69
def class_name
  script_name
    .split('-')
    .map { |token| token[0].upcase + token[1..-1] }
    .join
end
output_filename() click to toggle source
# File lib/aid/scripts/new.rb, line 41
def output_filename
  "#{script_name.tr('-', '_')}.rb"
end
output_path() click to toggle source
# File lib/aid/scripts/new.rb, line 37
def output_path
  "#{aid_directory}/#{output_filename}"
end
script_name() click to toggle source
# File lib/aid/scripts/new.rb, line 76
def script_name
  argv.first
end
template() click to toggle source
# File lib/aid/scripts/new.rb, line 52
      def template
        <<~RUBY
          class #{class_name} < Aid::Script
            def self.description
              "FILL ME IN"
            end
             def self.help
              <<~HELP
              Fill me in.
              HELP
            end
             def run
            end
          end
        RUBY
      end