Sha256: 900ef077f173bcd132df2ae6be805fdc46918421eb29acf39f479b4ecf32ebb5

Contents?: true

Size: 1.94 KB

Versions: 6

Compression:

Stored size: 1.94 KB

Contents

namespace :newrelic do
  desc "Lists information on supported versions of frameworks for this agent"

  require File.join(File.dirname(__FILE__), '..', 'new_relic', 'agent', 'supported_versions')

  task :supported_versions, [:format] => [] do |t, args|
    require 'cgi'

    def version_list(list)
      return "-" if list.nil? || list.empty?
      list.join(", ")
    end

    def versions_for_type(type)
      NewRelic::Agent::SUPPORTED_VERSIONS.
        select  {|key, values| values[:type] == type}.
        sort_by {|key, values| (values[:name] || key).to_s }.
        map    do |key,values|
          VersionStruct.new(
            values[:name] || key,
            values[:supported],
            values[:deprecated],
            values[:experimental],
            values[:notes])
        end
    end

    def build_erb(format)
      require 'erb'
      path = File.join(File.dirname(__FILE__), "versions.#{format}.erb")
      template = File.read(File.expand_path(path))
      ERB.new(template)
    end

    def write_versions(title, type, erb)
      anchor = title.downcase.gsub(" ", "_")
      versions = versions_for_type(type)
      puts erb.result(binding).gsub(/^ *$/, '')
    end

    def include_if_exists(filename)
      path = File.join(File.dirname(__FILE__), filename)
      puts File.read(path) if File.exists?(path)
    end

    VersionStruct = Struct.new(:name, :supported, :deprecated, :experimental, :notes)

    format = args[:format] || "txt"
    erb = build_erb(format)

    include_if_exists("versions.preface.#{format}")

    write_versions("Ruby versions",   :ruby, erb)
    write_versions("Web servers",     :app_server, erb)
    write_versions("Web frameworks",  :web, erb)
    write_versions("Database",        :database, erb)
    write_versions("Background jobs", :background, erb)
    write_versions("HTTP clients",    :http, erb)
    write_versions("Other",           :other, erb)

    include_if_exists("versions.postface.#{format}")
  end
end

Version data entries

6 entries across 6 versions & 2 rubygems

Version Path
ish_lib_manager-0.0.1 test/dummy/vendor/bundle/ruby/2.3.0/gems/newrelic_rpm-3.15.2.317/lib/tasks/versions.rake
newrelic_rpm-3.15.2.317 lib/tasks/versions.rake
newrelic_rpm-3.15.1.316 lib/tasks/versions.rake
newrelic_rpm-3.15.0.314 lib/tasks/versions.rake
newrelic_rpm-3.14.3.313 lib/tasks/versions.rake
newrelic_rpm-3.14.2.312 lib/tasks/versions.rake