Class: Factorix::API::Tag

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

Overview

Tag object from MOD Portal API

Represents a MOD tag with value, name, and description. Uses flyweight pattern - same tag value returns same instance.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Attribute Details

#description ⇒ String (readonly)

Returns tag description.

Returns:

  • (String) —

    tag description



14
15
16
# File 'lib/factorix/api/tag.rb', line 14

def description
  @description
end

#name ⇒ String (readonly)

Returns human-readable tag name (e.g., "Transportation", "Logistics").

Returns:

  • (String) —

    human-readable tag name (e.g., "Transportation", "Logistics")



14
15
16
# File 'lib/factorix/api/tag.rb', line 14

def name
  @name
end

#value ⇒ String (readonly)

Returns tag value (e.g., "transportation", "logistics").

Returns:

  • (String) —

    tag value (e.g., "transportation", "logistics")



14
15
16
# File 'lib/factorix/api/tag.rb', line 14

def value
  @value
end

Class Method Details

.for(value) ⇒ Tag

Get Tag instance for the given value

Returns predefined instance for known tags (flyweight pattern). Raises an error for unknown tag values.

Parameters:

  • value (String) —

    tag value

Returns:

  • (Tag) —

    Tag instance

Raises:

  • (KeyError) —

    if tag value is unknown



93
# File 'lib/factorix/api/tag.rb', line 93

def self.for(value) = TAGS.fetch(value.to_s)

.identifiers ⇒ Array<String>

Returns all tag identifiers.

Returns:

  • (Array<String>) —

    all tag identifiers



83
# File 'lib/factorix/api/tag.rb', line 83

def self.identifiers = TAGS.keys