Class: Factorix::API::MODInfo::Detail
- Inherits:
-
Data
- Object
- Data
- Factorix::API::MODInfo::Detail
- 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
-
#category ⇒ Category
readonly
MOD category.
-
#changelog ⇒ String
readonly
Changelog text.
-
#created_at ⇒ Time
readonly
Creation timestamp.
-
#deprecated ⇒ Boolean
readonly
Deprecation status.
-
#description ⇒ String
readonly
Detailed description text.
-
#detail ⇒ Detail?
readonly
Detailed information (Full API only).
-
#downloads_count ⇒ Integer
readonly
Total number of downloads.
-
#faq ⇒ String
readonly
FAQ text.
-
#homepage ⇒ URI, String
readonly
Homepage URL or string.
-
#images ⇒ Array<Image>
readonly
Images.
-
#last_highlighted_at ⇒ Time?
readonly
Last highlighted timestamp.
-
#latest_release ⇒ Release?
readonly
Latest release (list API without namelist).
-
#license ⇒ License?
readonly
License information.
-
#name ⇒ String
readonly
Internal MOD name (unique identifier).
-
#owner ⇒ String
readonly
MOD owner username.
-
#releases ⇒ Array<Release>
readonly
All releases.
-
#score ⇒ Float
readonly
MOD score/rating.
-
#source_url ⇒ URI::HTTPS?
readonly
Source repository URL.
-
#summary ⇒ String
readonly
Short description.
-
#tags ⇒ Array<Tag>
readonly
Tags.
-
#thumbnail ⇒ URI::HTTPS?
readonly
Thumbnail image URL.
-
#title ⇒ String
readonly
Human-readable MOD title.
-
#updated_at ⇒ Time
readonly
Last update timestamp.
Instance Method Summary collapse
-
#deprecated? ⇒ Boolean
Check if the MOD is deprecated.
-
#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
constructor
Create Detail from API response hash.
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
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 ||= "" = ( || []).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
#category ⇒ Category (readonly)
Returns MOD category.
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) |
#changelog ⇒ String (readonly)
Returns changelog text.
42 43 44 |
# File 'lib/factorix/api/mod_info.rb', line 42 def changelog @changelog end |
#created_at ⇒ Time (readonly)
Returns creation timestamp.
42 43 44 |
# File 'lib/factorix/api/mod_info.rb', line 42 def created_at @created_at end |
#deprecated ⇒ Boolean (readonly)
Returns deprecation status.
42 43 44 |
# File 'lib/factorix/api/mod_info.rb', line 42 def deprecated @deprecated end |
#description ⇒ String (readonly)
Returns detailed description text.
42 43 44 |
# File 'lib/factorix/api/mod_info.rb', line 42 def description @description end |
#detail ⇒ Detail? (readonly)
Returns 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_count ⇒ Integer (readonly)
Returns 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) |
#faq ⇒ String (readonly)
Returns FAQ text.
42 43 44 |
# File 'lib/factorix/api/mod_info.rb', line 42 def faq @faq end |
#homepage ⇒ URI, String (readonly)
Returns homepage URL or string.
42 43 44 |
# File 'lib/factorix/api/mod_info.rb', line 42 def homepage @homepage end |
#images ⇒ Array<Image> (readonly)
Returns images.
42 43 44 |
# File 'lib/factorix/api/mod_info.rb', line 42 def images @images end |
#last_highlighted_at ⇒ Time? (readonly)
Returns last highlighted timestamp.
42 43 44 |
# File 'lib/factorix/api/mod_info.rb', line 42 def last_highlighted_at @last_highlighted_at end |
#latest_release ⇒ Release? (readonly)
Returns 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) |
#license ⇒ License? (readonly)
Returns license information.
42 43 44 |
# File 'lib/factorix/api/mod_info.rb', line 42 def license @license end |
#name ⇒ String (readonly)
Returns 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) |
#owner ⇒ String (readonly)
Returns 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) |
#releases ⇒ Array<Release> (readonly)
Returns 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) |
#score ⇒ Float (readonly)
Returns 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_url ⇒ URI::HTTPS? (readonly)
Returns source repository URL.
42 43 44 |
# File 'lib/factorix/api/mod_info.rb', line 42 def source_url @source_url end |
#summary ⇒ String (readonly)
Returns 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) |
#tags ⇒ Array<Tag> (readonly)
Returns tags.
42 43 44 |
# File 'lib/factorix/api/mod_info.rb', line 42 def @tags end |
#thumbnail ⇒ URI::HTTPS? (readonly)
Returns 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) |
#title ⇒ String (readonly)
Returns 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_at ⇒ Time (readonly)
Returns 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
110 |
# File 'lib/factorix/api/mod_info.rb', line 110 def deprecated? = deprecated |