Class: Kanpachi::ResourceList
- Inherits:
-
Object
- Object
- Kanpachi::ResourceList
- Defined in:
- lib/kanpachi/resource_list.rb
Overview
Class to keep track of all defined resources
Defined Under Namespace
Classes: DuplicateResource, UnknownResource
Instance Method Summary collapse
-
#add(resource) ⇒ Hash<Kanpachi::Resource>
Add a resource to the list.
-
#all ⇒ Array<Kanpachi::Resource>
Returns an array of resources.
-
#find(verb, url) ⇒ Nil, Kanpachi::Resource
Returns a resource based on its verb and url.
-
#initialize ⇒ ResourceList
constructor
A new instance of ResourceList.
-
#named(name) ⇒ Kanpachi::Resource
Returns a resource based on its name.
-
#to_hash ⇒ Hash<Kanpachi::Resource>
Returns a hash of resources.
Constructor Details
#initialize ⇒ ResourceList
Returns a new instance of ResourceList.
9 10 11 |
# File 'lib/kanpachi/resource_list.rb', line 9 def initialize @list = {} end |
Instance Method Details
#add(resource) ⇒ Hash<Kanpachi::Resource>
Add a resource to the list
35 36 37 38 39 40 |
# File 'lib/kanpachi/resource_list.rb', line 35 def add(resource) if @list.key? resource.route raise DuplicateResource, "A resource accessible via #{resource.http_verb} #{resource.url} already exists" end @list[resource.route] = resource end |
#all ⇒ Array<Kanpachi::Resource>
Returns an array of resources
25 26 27 |
# File 'lib/kanpachi/resource_list.rb', line 25 def all @list.values end |
#find(verb, url) ⇒ Nil, Kanpachi::Resource
Returns a resource based on its verb and url
65 66 67 68 69 |
# File 'lib/kanpachi/resource_list.rb', line 65 def find(verb, url) http_verb = verb.to_s.upcase route = "#{http_verb} #{url}" @list[route] end |
#named(name) ⇒ Kanpachi::Resource
Returns a resource based on its name
49 50 51 52 53 54 55 56 |
# File 'lib/kanpachi/resource_list.rb', line 49 def named(name) resource = all.detect { |resource| resource.name == name } if resource.nil? raise UnknownResource, "Resource named #{name} doesn't exist" else resource end end |
#to_hash ⇒ Hash<Kanpachi::Resource>
Returns a hash of resources
17 18 19 |
# File 'lib/kanpachi/resource_list.rb', line 17 def to_hash @list end |