Sha256: c42a6e269768cf86d886a53dc8bab649eca243d3968279036dca3b8aa5464dcc

Contents?: true

Size: 1.11 KB

Versions: 1

Compression:

Stored size: 1.11 KB

Contents

# frozen_string_literal: true

require "active_support/core_ext/string"
require_relative "tool/command"
require_relative "tool/env"
require_relative "tool/flags"
require_relative "tool/settings"
require_relative "tool/verbosity"

# Provides an instance of a specific tool
module Reviewer
  class Tool
    attr_reader :settings

    def initialize(tool)
      @settings = Settings.new(tool)
    end

    def installation_command(verbosity_level = :no_silence)
      command_string(:install, verbosity_level: verbosity_level)
    end

    def preparation_command(verbosity_level = :no_silence)
       command_string(:prepare, verbosity_level: verbosity_level)
    end

    def review_command(verbosity_level = :total_silence)
      command_string(:review, verbosity_level: verbosity_level)
    end

    def format_command(verbosity_level = :no_silence)
      command_string(:format, verbosity_level: verbosity_level)
    end


    private

    def command_string(command_type, verbosity_level: :no_silence)
      cmd = Command.new(command_type, tool_settings: settings, verbosity_level: verbosity_level)

      cmd.to_s
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
reviewer-0.1.1 lib/reviewer/tool.rb