Sha256: 412d5f1040f633e74ff65b84c80f664f21203261bcb624fad8a19afc65b9e803

Contents?: true

Size: 1.97 KB

Versions: 98

Compression:

Stored size: 1.97 KB

Contents

require 'pact/provider/help/content'
require 'fileutils'
require 'pact/consumer/configuration'
require 'pact/provider/help/write'
require 'term/ansicolor'

module Pact
  module Provider
    module Help
      class ConsoleText

        C = ::Term::ANSIColor

        def self.call reports_dir = Pact.configuration.reports_dir, options = {color: true}
          new(reports_dir || Pact.configuration.reports_dir, options).call
        end

        def initialize reports_dir, options
          @reports_dir = File.expand_path(reports_dir)
          @options = options
        end

        def call
          begin
            options[:color] ? ColorizeMarkdown.(help_text) : help_text
          rescue Errno::ENOENT
            options[:color] ? error_text_coloured : error_text_plain
          end
        end

        private

        attr_reader :reports_dir, :options

        def help_text
          File.read(help_file_path)
        end

        def help_file_path
          File.join(reports_dir, Write::HELP_FILE_NAME)
        end

        def error_text_plain
          "Sorry, could not find help file at #{help_file_path}. Please ensure you have run `rake pact:verify`.\n" +
           "If this does not fix the problem, please raise a github issues for this bug."
        end

        def error_text_coloured
          C.red(error_text_plain)
        end

        class ColorizeMarkdown

          C = ::Term::ANSIColor

          def self.call markdown
            markdown.split("\n").collect do | line |
              if line.start_with?("# ")
                yellow_underling line.gsub(/^# /, '')
              elsif line.start_with?("* ")
                green("* ") + line.gsub(/^\* /, '')
              else
                line
              end
            end.join("\n")
          end

          def self.yellow_underling string
            C.underline(C.yellow(string))
          end

          def self.green string
            C.green(string)
          end

        end
      end
    end
  end
end

Version data entries

98 entries across 98 versions & 1 rubygems

Version Path
pact-1.52.0 lib/pact/provider/help/console_text.rb
pact-1.51.1 lib/pact/provider/help/console_text.rb
pact-1.51.0 lib/pact/provider/help/console_text.rb
pact-1.50.1 lib/pact/provider/help/console_text.rb
pact-1.50.0 lib/pact/provider/help/console_text.rb
pact-1.49.3 lib/pact/provider/help/console_text.rb
pact-1.49.2 lib/pact/provider/help/console_text.rb
pact-1.49.1 lib/pact/provider/help/console_text.rb
pact-1.49.0 lib/pact/provider/help/console_text.rb
pact-1.48.0 lib/pact/provider/help/console_text.rb
pact-1.47.0 lib/pact/provider/help/console_text.rb
pact-1.46.1 lib/pact/provider/help/console_text.rb
pact-1.46.0 lib/pact/provider/help/console_text.rb
pact-1.45.0 lib/pact/provider/help/console_text.rb
pact-1.44.1 lib/pact/provider/help/console_text.rb
pact-1.44.0 lib/pact/provider/help/console_text.rb
pact-1.43.1 lib/pact/provider/help/console_text.rb
pact-1.43.0 lib/pact/provider/help/console_text.rb
pact-1.42.3 lib/pact/provider/help/console_text.rb
pact-1.42.2 lib/pact/provider/help/console_text.rb