class Metrojobb::Category

Constants

ID_NAME_MAP
NAME_ID_MAP

Attributes

id[RW]
name[RW]

Public Class Methods

id_name_map() click to toggle source
# File lib/metrojobb/category.rb, line 45
def self.id_name_map
  NAME_ID_MAP.invert
end
ids() click to toggle source
# File lib/metrojobb/category.rb, line 37
def self.ids
  NAME_ID_MAP.values
end
name_id_map() click to toggle source
# File lib/metrojobb/category.rb, line 41
def self.name_id_map
  NAME_ID_MAP
end
names() click to toggle source
# File lib/metrojobb/category.rb, line 33
def self.names
  NAME_ID_MAP.keys
end

Public Instance Methods

category_id() click to toggle source
# File lib/metrojobb/category.rb, line 55
def category_id
  self.class.name_id_map[name.presence || id.presence] ||
    id.presence ||
    name.presence
end
to_xml(builder: Builder::XmlMarkup.new(indent: DEFAULT_INDENT)) click to toggle source
# File lib/metrojobb/category.rb, line 49
def to_xml(builder: Builder::XmlMarkup.new(indent: DEFAULT_INDENT))
  builder.category do |node|
    node.id(category_id.to_s)
  end
end
validate_known_category() click to toggle source
# File lib/metrojobb/category.rb, line 61
def validate_known_category
  return if self.class.id_name_map[category_id]

  errors.add(:category_id, :inclusion)
end