module Asana::Resources::Registry
Internal: Global registry of Resource subclasses. It provides lookup from singular and plural names to the actual class objects.
Examples
class Unicorn < Asana::Resources::Resource path '/unicorns' end Registry.lookup(:unicorn) # => Unicorn Registry.lookup_many(:unicorns) # => Unicorn
Public Class Methods
Public: Looks up a resource class by its singular name.
singular_name - [#to_s] the name of the resource, e.g :unicorn.
Returns the resource class or {Asana::Resources::Resource}.
# File lib/asana/resource_includes/registry.rb, line 34 def lookup(singular_name) resources.detect do |klass| klass.singular_name.to_s == singular_name.to_s end || Resource end
Public: Looks up a resource class by its plural name.
plural_name - [#to_s] the plural name of the resource, e.g :unicorns.
Returns the resource class or {Asana::Resources::Resource}.
# File lib/asana/resource_includes/registry.rb, line 45 def lookup_many(plural_name) resources.detect do |klass| klass.plural_name.to_s == plural_name.to_s end || Resource end
Public: Registers a new resource class.
resource_klass - [Class] the resource class.
Returns nothing.
# File lib/asana/resource_includes/registry.rb, line 25 def register(resource_klass) resources << resource_klass end
Internal: A set of Resource classes.
Returns the Set, defaulting to the empty set.
Note: this object is a mutable singleton, so it should not be accessed from multiple threads.
# File lib/asana/resource_includes/registry.rb, line 57 def resources @resources ||= Set.new end