Sha256: a84c443b1896adddce2728618795dd380f58e9e1914863d6630ec8ede68dddfc

Contents?: true

Size: 915 Bytes

Versions: 1

Compression:

Stored size: 915 Bytes

Contents

require 'optparse'

require_relative "config"
require_relative "aspell"
require_relative "preset"
require_relative "checker/file_system"


module Heckler
  class Runner
    attr_reader :checkers

    def initialize(checkers)
      @checkers = checkers
    end

    def run(directory)
      issues = []

      puts directory

      @checkers.each do |checker|
        issues.concat(checker.check(directory))
      end

      issues
    end
  end

  class CLI
    def self.start(args)
      command = args.shift

      case command
      when 'init'
        Config.init
      when nil
        config = Config.instance
        aspell = Aspell.new(config)

        Runner.new([
          Heckler::Checker::FileSystem.new(config, aspell)
        ]).run(Dir.pwd)
      else
        puts "Unknown command: #{command}"
        puts "Available commands: init, or no command for default behavior"
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
heckler-0.0.1 lib/heckler/cli.rb