Sha256: 31789149af12ba3c9d49cb5049d4fa28c77d4c7c22cfd8c0a6e5f1df8261c69b

Contents?: true

Size: 1.37 KB

Versions: 15

Compression:

Stored size: 1.37 KB

Contents

require 'pact/provider/help/content'
require 'fileutils'
require 'pact/consumer/configuration'

module Pact
  module Provider
    module Help
      class Write

        HELP_FILE_NAME = 'help.md'

        def self.call pact_sources, reports_dir = Pact.configuration.reports_dir
          new(pact_sources, reports_dir).call
        end

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

        def call
          clean_reports_dir
          write
        rescue StandardError => e
          Pact.configuration.error_stream.puts("ERROR: Error generating help output - #{e.class} #{e.message} \n" + e.backtrace.join("\n"))
        end

        private

        attr_reader :reports_dir, :pact_sources

        def clean_reports_dir
          raise "Cleaning report dir #{reports_dir} would delete project!" if reports_dir_contains_pwd
          FileUtils.rm_rf reports_dir
          FileUtils.mkdir_p reports_dir
        end

        def reports_dir_contains_pwd
          Dir.pwd.start_with?(reports_dir)
        end

        def write
          File.open(help_path, "w") { |file| file << help_text }
        end

        def help_path
          File.join(reports_dir, 'help.md')
        end

        def help_text
          Content.new(pact_sources).text
        end
      end
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
pact-1.66.1 lib/pact/provider/help/write.rb
pact-1.66.0 lib/pact/provider/help/write.rb
pact-1.65.3 lib/pact/provider/help/write.rb
pact-1.65.2 lib/pact/provider/help/write.rb
pact-1.65.1 lib/pact/provider/help/write.rb
pact-1.65.0 lib/pact/provider/help/write.rb
pact-1.64.0 lib/pact/provider/help/write.rb
pact-1.63.0 lib/pact/provider/help/write.rb
pact-1.62.0 lib/pact/provider/help/write.rb
pact-1.61.0 lib/pact/provider/help/write.rb
pact-1.60.0 lib/pact/provider/help/write.rb
pact-1.59.0 lib/pact/provider/help/write.rb
pact-1.58.0 lib/pact/provider/help/write.rb
pact-1.57.0 lib/pact/provider/help/write.rb
pact-1.56.0 lib/pact/provider/help/write.rb