class Mixlib::Install::ArtifactInfo

Constants

ATTRIBUTES

Public Class Methods

from_json(json, platform_info) click to toggle source
# 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) click to toggle source
# File lib/mixlib/install/artifact_info.rb, line 53
def self.from_metadata_map(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, metadata|
        artifacts << ArtifactInfo.new(metadata.merge(
          platform: p,
          platform_version: pv,
          architecture: m
        ))
      end
    end
  end

  artifacts
end
new(data) click to toggle source
# 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

Public Instance Methods

appx_artifact?() click to toggle source
# File lib/mixlib/install/artifact_info.rb, line 80
def appx_artifact?
  url.end_with?(".appx")
end
clone_with(data) click to toggle source
# File lib/mixlib/install/artifact_info.rb, line 76
def clone_with(data)
  ArtifactInfo.new(to_hash.merge(data))
end
to_hash() click to toggle source
# 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