Class: Factorix::API::Release

Inherits:
Data
  • Object
show all
Defined in:
lib/factorix/api/release.rb,
lib/factorix/api/release.rb

Overview

Release object from MOD Portal API

Represents a specific version/release of a MOD

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(download_url:, file_name:, info_json:, released_at:, version:, sha1:, feature_flags: []) ⇒ Release

Create Release from API response hash

Parameters:

  • download_url (String)

    relative download URL path

  • file_name (String)

    release file name

  • info_json (Hash)

    info.json metadata

  • released_at (String)

    ISO 8601 timestamp

  • version (String)

    version string in “X.Y.Z” format

  • sha1 (String)

    SHA1 checksum

  • feature_flags (Array<String>) (defaults to: [])

    list of enabled feature flags (defaults to empty array)



41
42
43
44
45
46
# File 'lib/factorix/api/release.rb', line 41

def initialize(download_url:, file_name:, info_json:, released_at:, version:, sha1:, feature_flags: [])
  download_url = URI("https://mods.factorio.com#{download_url}")
  released_at = Time.parse(released_at).utc
  version = MODVersion.from_string(version)
  super
end

Instance Attribute Details

#download_urlURI::HTTPS (readonly)

Returns absolute URL for downloading this release.

Returns:

  • (URI::HTTPS)

    absolute URL for downloading this release



16
17
18
# File 'lib/factorix/api/release.rb', line 16

def download_url
  @download_url
end

#feature_flagsArray<String> (readonly)

Returns list of enabled feature flags.

Returns:

  • (Array<String>)

    list of enabled feature flags



16
17
18
# File 'lib/factorix/api/release.rb', line 16

def feature_flags
  @feature_flags
end

#file_nameString (readonly)

Returns file name of the release archive.

Returns:

  • (String)

    file name of the release archive



16
17
18
# File 'lib/factorix/api/release.rb', line 16

def file_name
  @file_name
end

#info_jsonHash (readonly)

Returns info.json metadata from the MOD.

Returns:

  • (Hash)

    info.json metadata from the MOD



16
17
18
# File 'lib/factorix/api/release.rb', line 16

def info_json
  @info_json
end

#released_atTime (readonly)

Returns release timestamp in UTC.

Returns:

  • (Time)

    release timestamp in UTC



16
17
18
# File 'lib/factorix/api/release.rb', line 16

def released_at
  @released_at
end

#sha1String (readonly)

Returns SHA1 checksum of the release file.

Returns:

  • (String)

    SHA1 checksum of the release file



16
17
18
# File 'lib/factorix/api/release.rb', line 16

def sha1
  @sha1
end

#versionMODVersion (readonly)

Returns MOD version object.

Returns:



16
17
18
# File 'lib/factorix/api/release.rb', line 16

def version
  @version
end