Sha256: 652a7959444a79681e74a31fb9dbed3b26adbae68e35dca1c14192e967332a15

Contents?: true

Size: 1.25 KB

Versions: 41

Compression:

Stored size: 1.25 KB

Contents

require 'fileutils'

module PkgForge
  ##
  # Add metadata methods to Forge
  class Forge
    attr_writer :name, :org, :licenses

    Contract None => String
    def name
      @name || raise('No name provided')
    end

    Contract None => String
    def org
      @org || raise('No org provided')
    end

    Contract None => ArrayOf[String]
    def licenses
      @licenses ||= ['LICENSE']
    end

    Contract None => nil
    def add_license!
      dest_dir = File.join(tmpdir(:release), 'usr', 'share', 'licenses', name)
      FileUtils.mkdir_p dest_dir
      licenses.each do |license|
        src_file = File.join(tmpdir(:build), license)
        dest_file = File.join(dest_dir, license)
        FileUtils.cp src_file, dest_file
      end
      nil
    end
  end

  module DSL
    ##
    # Add metadata methods to Forge DSL
    class Forge
      Contract String => nil
      def name(value)
        @forge.name = value
        nil
      end

      Contract String => nil
      def org(value)
        @forge.org = value
        nil
      end

      Contract Or[String, ArrayOf[String]] => nil
      def licenses(files)
        files = [files] unless files.is_a? Array
        @forge.licenses = files
        nil
      end
      alias license licenses
    end
  end
end

Version data entries

41 entries across 41 versions & 1 rubygems

Version Path
pkgforge-0.22.0 lib/pkgforge/components/metadata.rb
pkgforge-0.21.0 lib/pkgforge/components/metadata.rb
pkgforge-0.20.0 lib/pkgforge/components/metadata.rb
pkgforge-0.19.0 lib/pkgforge/components/metadata.rb
pkgforge-0.18.0 lib/pkgforge/components/metadata.rb
pkgforge-0.17.0 lib/pkgforge/components/metadata.rb
pkgforge-0.16.1 lib/pkgforge/components/metadata.rb
pkgforge-0.16.0 lib/pkgforge/components/metadata.rb
pkgforge-0.15.1 lib/pkgforge/components/metadata.rb
pkgforge-0.15.0 lib/pkgforge/components/metadata.rb
pkgforge-0.14.0 lib/pkgforge/components/metadata.rb
pkgforge-0.13.4 lib/pkgforge/components/metadata.rb
pkgforge-0.13.2 lib/pkgforge/components/metadata.rb
pkgforge-0.13.1 lib/pkgforge/components/metadata.rb
pkgforge-0.13.0 lib/pkgforge/components/metadata.rb
pkgforge-0.12.5 lib/pkgforge/components/metadata.rb
pkgforge-0.12.4 lib/pkgforge/components/metadata.rb
pkgforge-0.12.3 lib/pkgforge/components/metadata.rb
pkgforge-0.12.1 lib/pkgforge/components/metadata.rb
pkgforge-0.12.0 lib/pkgforge/components/metadata.rb