Sha256: 3b409b37089d1a206f70b7d5dc77ef0921e452713b2483f8fdb1e7cd9f0a1e69

Contents?: true

Size: 1.69 KB

Versions: 2

Compression:

Stored size: 1.69 KB

Contents

# encoding: UTF-8

module Tetra
  # represents a Java project packaged in Tetra
  class Package
    extend Forwardable
    include SpecGenerator

    def_delegator :@project, :name, :name

    def_delegator :@kit, :items, :kit_items

    def_delegator :@pom, :license_name, :license
    def_delegator :@pom, :url
    def_delegator :@pom, :group_id
    def_delegator :@pom, :artifact_id
    def_delegator :@pom, :version
    def_delegator :@pom, :runtime_dependency_ids

    # implement to_spec
    attr_reader :spec_dir

    # implement to_archive
    include Archiver
    attr_reader :source_dir
    attr_reader :source_paths
    attr_reader :destination_dir

    def initialize(project, pom_path = nil, filter = nil)
      @project = project
      @kit = Tetra::Kit.new(project)
      @pom = pom_path.nil? ? nil : Tetra::Pom.new(pom_path)
      @filter = filter

      @spec_dir = "src"

      @source_dir = "src"
      @source_paths = ["*"]
      @destination_dir = name
    end

    # a short summary from the POM
    def summary
      cleanup_description(@pom.description, 60)
    end

    # a long summary from the POM
    def description
      cleanup_description(@pom.description, 1500)
    end

    # files produced by this package
    def outputs
      @project.produced_files.select do |file|
        File.fnmatch?(@filter, File.basename(file))
      end
    end

    def cleanup_description(raw, max_length)
      raw
        .gsub(/[\s]+/, " ")
        .strip
        .slice(0..max_length - 1)
        .sub(/\s\w+$/, "")
        .sub(/\.+$/, "")
    end

    # needed by SpecGenerator
    attr_reader :project

    def package_name
      name
    end

    def template_spec_name
      "package.spec"
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
tetra-0.43.0 lib/tetra/package.rb
tetra-0.42.0 lib/tetra/package.rb