module Shippo::API::Category

For enumerations with discrete possible set of values, Category class offers it's subclasses and users tremendous benefits.

Categories should be always created via the Facåde +Shippo::API::Category.for(name, value)+. Although it is possible to directly instantiate subclasses, it is not recommended for performance reasons.

Example

“`ruby require 'shippo/api' class My::Big::Module::Size < ::Shippo::API::Category::Base

allowed_values :small, :medium, :large, :xlarge, :xxlarge

end # ⤷ [:small, :medium, :large, :xlarge, :xxlarge]

my_size = Shippo::API::Category.for('size', 'xlarge') # ⤷ XLARGE my_size.class.name # ⤷ My::Big::Module::Size “`

Attributes

categories[RW]

Public Class Methods

for(name, value) click to toggle source
# File lib/shippo/api/category.rb, line 41
def self.for(name, value)
  cat = self.categories[name.to_s.downcase.to_sym]
  cat ? cat[value.to_s.downcase.to_sym] : nil
end
key(value) click to toggle source
# File lib/shippo/api/category.rb, line 37
def self.key(value)
  value.to_s.downcase.to_sym
end