Class: Metrojobb::Region
Constant Summary collapse
- NAME_ID_MAP =
CSV.read( File.('../../../data/regions.csv', __FILE__) ).to_h.invert.freeze
Constants inherited from Model
Instance Attribute Summary collapse
-
#id ⇒ Object
Returns the value of attribute id.
-
#name ⇒ Object
Returns the value of attribute name.
Class Method Summary collapse
Instance Method Summary collapse
- #region_id ⇒ Object
- #to_xml(builder: Builder::XmlMarkup.new(indent: DEFAULT_INDENT)) ⇒ Object
- #validate_known_region ⇒ Object
Methods inherited from Model
Instance Attribute Details
#id ⇒ Object
Returns the value of attribute id.
5 6 7 |
# File 'lib/metrojobb/region.rb', line 5 def id @id end |
#name ⇒ Object
Returns the value of attribute name.
5 6 7 |
# File 'lib/metrojobb/region.rb', line 5 def name @name end |
Class Method Details
.id_name_map ⇒ Object
25 26 27 |
# File 'lib/metrojobb/region.rb', line 25 def self.id_name_map NAME_ID_MAP.invert end |
.ids ⇒ Object
17 18 19 |
# File 'lib/metrojobb/region.rb', line 17 def self.ids NAME_ID_MAP.values end |
.name_id_map ⇒ Object
21 22 23 |
# File 'lib/metrojobb/region.rb', line 21 def self.name_id_map NAME_ID_MAP end |
.names ⇒ Object
13 14 15 |
# File 'lib/metrojobb/region.rb', line 13 def self.names NAME_ID_MAP.keys end |
Instance Method Details
#region_id ⇒ Object
35 36 37 38 39 |
# File 'lib/metrojobb/region.rb', line 35 def region_id self.class.name_id_map[name.presence || id.presence] || id.presence || name.presence end |
#to_xml(builder: Builder::XmlMarkup.new(indent: DEFAULT_INDENT)) ⇒ Object
29 30 31 32 33 |
# File 'lib/metrojobb/region.rb', line 29 def to_xml(builder: Builder::XmlMarkup.new(indent: DEFAULT_INDENT)) builder.region do |node| node.id(region_id.to_s) end end |
#validate_known_region ⇒ Object
41 42 43 44 45 |
# File 'lib/metrojobb/region.rb', line 41 def validate_known_region return if self.class.id_name_map[region_id] errors.add(:region_id, :inclusion) end |