Class: Factorix::API::Release

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

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_url ⇒ URI::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_flags ⇒ Array<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_name ⇒ String (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_json ⇒ Hash (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_at ⇒ Time (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

#sha1 ⇒ String (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

#version ⇒ MODVersion (readonly)

Returns MOD version object.

Returns:



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

def version
  @version
end