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