Module: Shippo::API::Category
- Defined in:
- lib/shippo/api/category.rb,
lib/shippo/api/category/base.rb,
lib/shippo/api/category/state.rb,
lib/shippo/api/category/source.rb,
lib/shippo/api/category/status.rb,
lib/shippo/api/category/purpose.rb
Overview
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 “‘
Defined Under Namespace
Classes: Base, DuplicateValueError, Purpose, Source, State, Status
Class Attribute Summary collapse
-
.categories ⇒ Object
Returns the value of attribute categories.
Class Method Summary collapse
Class Attribute Details
.categories ⇒ Object
Returns the value of attribute categories.
31 32 33 |
# File 'lib/shippo/api/category.rb', line 31 def categories @categories end |
Class Method Details
.for(name, value) ⇒ Object
41 42 43 44 |
# 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) ⇒ Object
37 38 39 |
# File 'lib/shippo/api/category.rb', line 37 def self.key(value) value.to_s.downcase.to_sym end |