Class: Mixlib::Install::ArtifactInfo

Inherits:
Object
  • Object
show all
Defined in:
lib/mixlib/install/artifact_info.rb

Constant Summary collapse

ATTRIBUTES =
%w{
  architecture
  license
  license_content
  md5
  platform
  platform_version
  product_description
  product_name
  sha1
  sha256
  software_dependencies
  url
  version
}.freeze

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(data) ⇒ ArtifactInfo

Returns a new instance of ArtifactInfo.



42
43
44
45
46
47
# File 'lib/mixlib/install/artifact_info.rb', line 42

def initialize(data)
  # Create an instance variable for each attribute
  ATTRIBUTES.each do |attribute|
    instance_variable_set("@#{attribute}", data[attribute.to_sym])
  end
end

Class Method Details

.from_json(json, platform_info) ⇒ Object



49
50
51
# File 'lib/mixlib/install/artifact_info.rb', line 49

def self.from_json(json, platform_info)
  ArtifactInfo.new(JSON.parse(json, symbolize_names: true).merge(platform_info))
end

.from_metadata_map(json) ⇒ Object



53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/mixlib/install/artifact_info.rb', line 53

def self.(json)
  artifacts = []

  JSON.parse(json, symbolize_names: true).each do |p, p_data|
    p_data.each do |pv, pv_data|
      pv_data.each do |m, |
        artifacts << ArtifactInfo.new(.merge(
          platform: p,
          platform_version: pv,
          architecture: m
        ))
      end
    end
  end

  artifacts
end

Instance Method Details

#appx_artifact?Boolean

Returns:

  • (Boolean)


80
81
82
# File 'lib/mixlib/install/artifact_info.rb', line 80

def appx_artifact?
  url.end_with?(".appx")
end

#clone_with(data) ⇒ Object



76
77
78
# File 'lib/mixlib/install/artifact_info.rb', line 76

def clone_with(data)
  ArtifactInfo.new(to_hash.merge(data))
end

#to_hashObject



71
72
73
74
# File 'lib/mixlib/install/artifact_info.rb', line 71

def to_hash
  # Create a Hash of the instance data
  Hash[ATTRIBUTES.map { |attribute| [attribute.to_sym, eval(attribute)] }]
end