Sha256: d64776eaecfc291e40a6661b17f2628843c484c6e2e742a3d206a1840043bbaa

Contents?: true

Size: 1.14 KB

Versions: 8

Compression:

Stored size: 1.14 KB

Contents

# frozen_string_literal: true

require 'fileutils'

module Fablicop
  class CLI
    def self.start(args)
      action_name = retrieve_command_name(args)
      unless action_name
        print_help
        exit
      end

      instance = self.new
      if instance.public_methods(false).include?(action_name.to_sym)
        instance.__send__(action_name, args)
        exit
      end

      puts "Could not find command #{action_name}."
      print_help
      exit(1)
    rescue StandardError => e
      puts e.message
      exit(1)
    end

    def self.retrieve_command_name(args)
      meth = args.first.to_s unless args.empty?
      args.shift if meth && (meth !~ /^-/)
    end

    def self.print_help
      puts 'fablicop commands:'
      puts '  init - Setup .rubocop.yml'
    end

    CONFIG_FILE_NAME = '.rubocop.yml'
    def init(args)
      raise 'usage: fablicop init' unless args.empty?

      template_path = File.expand_path('../../templates', __dir__)
      puts "#{File.exist?(CONFIG_FILE_NAME) ? 'overwrite' : 'create'} #{CONFIG_FILE_NAME}"
      FileUtils.copy_file(File.join(template_path, CONFIG_FILE_NAME), CONFIG_FILE_NAME)
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
fablicop-1.5.0 lib/fablicop/cli.rb
fablicop-1.4.1 lib/fablicop/cli.rb
fablicop-1.4.0 lib/fablicop/cli.rb
fablicop-1.3.0 lib/fablicop/cli.rb
fablicop-1.2.1 lib/fablicop/cli.rb
fablicop-1.2.0 lib/fablicop/cli.rb
fablicop-1.1.2 lib/fablicop/cli.rb
fablicop-1.1.1 lib/fablicop/cli.rb