Sha256: 01a8cf00ae1f8ab17f6b98183736ce9208c431812758cb26a2847b4345eac163
Contents?: true
Size: 1.7 KB
Versions: 1
Compression:
Stored size: 1.7 KB
Contents
# encoding: UTF-8 module Tetra # represents a prebuilt package dependency from a Maven local repo # in a kit class MavenKitItem include Archivable include Speccable attr_reader :project attr_reader :package_name attr_reader :conflicts attr_reader :source_dir attr_reader :source_paths attr_reader :provides_symbol attr_reader :provides_version attr_reader :install_dir def initialize(project, pom, source_paths) path, _ = path_split(pom) rest, version = path_split(path) group_directory, artifact_id = path_split(rest) group_id = path_to_group(group_directory) hash = Digest::SHA1.hexdigest(source_paths.to_s) short_hash = hash.slice(0, 5) @project = project @package_name = "kit-item-#{artifact_id}-#{short_hash}" @conflicts = false @provides_symbol = "tetra-mvn(#{group_id}:#{artifact_id}:#{version})" @provides_version = hash @install_dir = "m2" @source_dir = File.join("kit", "m2") @source_paths = source_paths end def to_archive _to_archive(@project, @package_name, @source_dir, @source_paths, @project.kit_packages_dir) end def to_spec _to_spec(@project, @package_name, "kit_item.spec", @project.kit_packages_dir) end private # splits a path string into a [head, tail] string couple def path_split(path) Pathname.new(path).split.map { |e| e.to_s } end # transforms a path into a Maven group def path_to_group(path) splits = path_split(path) if splits[0] == "." return splits[1] else return "#{path_to_group(splits[0])}.#{splits[1]}" end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
tetra-0.45.0 | lib/tetra/packages/maven_kit_item.rb |