Class: Factorix::API::MODInfo::Detail

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

Overview

Detailed MOD information from Full API endpoint

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(created_at:, updated_at:, homepage:, changelog: nil, last_highlighted_at: nil, description: nil, source_url: nil, faq: nil, tags: nil, license: nil, images: nil, deprecated: nil) ⇒ Detail

Create Detail from API response hash

Parameters:

  • changelog (String, nil) (defaults to: nil)

    changelog

  • created_at (String)

    ISO 8601 timestamp

  • updated_at (String)

    ISO 8601 timestamp

  • last_highlighted_at (String, nil) (defaults to: nil)

    ISO 8601 timestamp

  • description (String, nil) (defaults to: nil)

    description

  • source_url (String, nil) (defaults to: nil)

    source URL

  • homepage (String)

    homepage URL or string

  • faq (String, nil) (defaults to: nil)

    FAQ

  • tags (Array<String>, nil) (defaults to: nil)

    tags

  • license (Hash, nil) (defaults to: nil)

    license data

  • images (Array<Hash>, nil) (defaults to: nil)

    images data

  • deprecated (Boolean, nil) (defaults to: nil)

    deprecated flag



90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
# File 'lib/factorix/api/mod_info.rb', line 90

def initialize(created_at:, updated_at:, homepage:, changelog: nil, last_highlighted_at: nil, description: nil, source_url: nil, faq: nil, tags: nil, license: nil, images: nil, deprecated: nil)
  changelog ||= ""
  created_at = Time.parse(created_at).utc
  updated_at = Time.parse(updated_at).utc
  last_highlighted_at = last_highlighted_at ? Time.parse(last_highlighted_at).utc : nil
  description ||= ""
  source_url = parse_uri(source_url)
  homepage = parse_uri(homepage)
  faq ||= ""
  tags = (tags || []).map {|tag_value| Tag.for(tag_value) }
  license = license ? License[**license] : nil
  images = (images || []).map {|img| Image[**img] }
  deprecated ||= false

  super
end

Instance Attribute Details

#categoryCategory (readonly)

Returns MOD category.

Returns:



42
# File 'lib/factorix/api/mod_info.rb', line 42

Detail = Data.define(:changelog, :created_at, :updated_at, :last_highlighted_at, :description, :source_url, :homepage, :faq, :tags, :license, :images, :deprecated)

#changelogString (readonly)

Returns changelog text.

Returns:

  • (String)

    changelog text



42
43
44
# File 'lib/factorix/api/mod_info.rb', line 42

def changelog
  @changelog
end

#created_atTime (readonly)

Returns creation timestamp.

Returns:

  • (Time)

    creation timestamp



42
43
44
# File 'lib/factorix/api/mod_info.rb', line 42

def created_at
  @created_at
end

#deprecatedBoolean (readonly)

Returns deprecation status.

Returns:

  • (Boolean)

    deprecation status



42
43
44
# File 'lib/factorix/api/mod_info.rb', line 42

def deprecated
  @deprecated
end

#descriptionString (readonly)

Returns detailed description text.

Returns:

  • (String)

    detailed description text



42
43
44
# File 'lib/factorix/api/mod_info.rb', line 42

def description
  @description
end

#detailDetail? (readonly)

Returns detailed information (Full API only).

Returns:

  • (Detail, nil)

    detailed information (Full API only)



42
# File 'lib/factorix/api/mod_info.rb', line 42

Detail = Data.define(:changelog, :created_at, :updated_at, :last_highlighted_at, :description, :source_url, :homepage, :faq, :tags, :license, :images, :deprecated)

#downloads_countInteger (readonly)

Returns total number of downloads.

Returns:

  • (Integer)

    total number of downloads



42
# File 'lib/factorix/api/mod_info.rb', line 42

Detail = Data.define(:changelog, :created_at, :updated_at, :last_highlighted_at, :description, :source_url, :homepage, :faq, :tags, :license, :images, :deprecated)

#faqString (readonly)

Returns FAQ text.

Returns:

  • (String)

    FAQ text



42
43
44
# File 'lib/factorix/api/mod_info.rb', line 42

def faq
  @faq
end

#homepageURI, String (readonly)

Returns homepage URL or string.

Returns:

  • (URI, String)

    homepage URL or string



42
43
44
# File 'lib/factorix/api/mod_info.rb', line 42

def homepage
  @homepage
end

#imagesArray<Image> (readonly)

Returns images.

Returns:

  • (Array<Image>)

    images



42
43
44
# File 'lib/factorix/api/mod_info.rb', line 42

def images
  @images
end

#last_highlighted_atTime? (readonly)

Returns last highlighted timestamp.

Returns:

  • (Time, nil)

    last highlighted timestamp



42
43
44
# File 'lib/factorix/api/mod_info.rb', line 42

def last_highlighted_at
  @last_highlighted_at
end

#latest_releaseRelease? (readonly)

Returns latest release (list API without namelist).

Returns:

  • (Release, nil)

    latest release (list API without namelist)



42
# File 'lib/factorix/api/mod_info.rb', line 42

Detail = Data.define(:changelog, :created_at, :updated_at, :last_highlighted_at, :description, :source_url, :homepage, :faq, :tags, :license, :images, :deprecated)

#licenseLicense? (readonly)

Returns license information.

Returns:

  • (License, nil)

    license information



42
43
44
# File 'lib/factorix/api/mod_info.rb', line 42

def license
  @license
end

#nameString (readonly)

Returns internal MOD name (unique identifier).

Returns:

  • (String)

    internal MOD name (unique identifier)



42
# File 'lib/factorix/api/mod_info.rb', line 42

Detail = Data.define(:changelog, :created_at, :updated_at, :last_highlighted_at, :description, :source_url, :homepage, :faq, :tags, :license, :images, :deprecated)

#ownerString (readonly)

Returns MOD owner username.

Returns:

  • (String)

    MOD owner username



42
# File 'lib/factorix/api/mod_info.rb', line 42

Detail = Data.define(:changelog, :created_at, :updated_at, :last_highlighted_at, :description, :source_url, :homepage, :faq, :tags, :license, :images, :deprecated)

#releasesArray<Release> (readonly)

Returns all releases.

Returns:

  • (Array<Release>)

    all releases



42
# File 'lib/factorix/api/mod_info.rb', line 42

Detail = Data.define(:changelog, :created_at, :updated_at, :last_highlighted_at, :description, :source_url, :homepage, :faq, :tags, :license, :images, :deprecated)

#scoreFloat (readonly)

Returns MOD score/rating.

Returns:

  • (Float)

    MOD score/rating



42
# File 'lib/factorix/api/mod_info.rb', line 42

Detail = Data.define(:changelog, :created_at, :updated_at, :last_highlighted_at, :description, :source_url, :homepage, :faq, :tags, :license, :images, :deprecated)

#source_urlURI::HTTPS? (readonly)

Returns source repository URL.

Returns:

  • (URI::HTTPS, nil)

    source repository URL



42
43
44
# File 'lib/factorix/api/mod_info.rb', line 42

def source_url
  @source_url
end

#summaryString (readonly)

Returns short description.

Returns:

  • (String)

    short description



42
# File 'lib/factorix/api/mod_info.rb', line 42

Detail = Data.define(:changelog, :created_at, :updated_at, :last_highlighted_at, :description, :source_url, :homepage, :faq, :tags, :license, :images, :deprecated)

#tagsArray<Tag> (readonly)

Returns tags.

Returns:

  • (Array<Tag>)

    tags



42
43
44
# File 'lib/factorix/api/mod_info.rb', line 42

def tags
  @tags
end

#thumbnailURI::HTTPS? (readonly)

Returns thumbnail image URL.

Returns:

  • (URI::HTTPS, nil)

    thumbnail image URL



42
# File 'lib/factorix/api/mod_info.rb', line 42

Detail = Data.define(:changelog, :created_at, :updated_at, :last_highlighted_at, :description, :source_url, :homepage, :faq, :tags, :license, :images, :deprecated)

#titleString (readonly)

Returns human-readable MOD title.

Returns:

  • (String)

    human-readable MOD title



42
# File 'lib/factorix/api/mod_info.rb', line 42

Detail = Data.define(:changelog, :created_at, :updated_at, :last_highlighted_at, :description, :source_url, :homepage, :faq, :tags, :license, :images, :deprecated)

#updated_atTime (readonly)

Returns last update timestamp.

Returns:

  • (Time)

    last update timestamp



42
43
44
# File 'lib/factorix/api/mod_info.rb', line 42

def updated_at
  @updated_at
end

Instance Method Details

#deprecated?Boolean

Check if the MOD is deprecated

Returns:

  • (Boolean)

    true if deprecated



110
# File 'lib/factorix/api/mod_info.rb', line 110

def deprecated? = deprecated