Class: Hyperdrive::Resource
- Inherits:
-
Object
- Object
- Hyperdrive::Resource
- Defined in:
- lib/hyperdrive/resource.rb
Instance Attribute Summary collapse
-
#allowed_params ⇒ Object
readonly
Returns the value of attribute allowed_params.
-
#desc ⇒ Object
Returns the value of attribute desc.
-
#endpoint ⇒ Object
readonly
Returns the value of attribute endpoint.
-
#filters ⇒ Object
readonly
Returns the value of attribute filters.
-
#name ⇒ Object
Returns the value of attribute name.
-
#request_handlers ⇒ Object
readonly
Returns the value of attribute request_handlers.
Instance Method Summary collapse
- #allowed_methods ⇒ Object
- #define_request_handler(request_method, block) ⇒ Object
-
#initialize(key) ⇒ Resource
constructor
A new instance of Resource.
- #register_filter(key, description, options = {}) ⇒ Object
- #register_param(key, description, options = {}) ⇒ Object
- #request_handler(http_request_method) ⇒ Object
- #request_method_allowed?(http_request_method) ⇒ Boolean
Constructor Details
#initialize(key) ⇒ Resource
8 9 10 11 12 13 14 |
# File 'lib/hyperdrive/resource.rb', line 8 def initialize(key) @key = key @endpoint = "/#{@key.to_s.en.plural}" @allowed_params = default_allowed_params @filters = default_filters @request_handlers = default_request_handlers end |
Instance Attribute Details
#allowed_params ⇒ Object (readonly)
Returns the value of attribute allowed_params.
5 6 7 |
# File 'lib/hyperdrive/resource.rb', line 5 def allowed_params @allowed_params end |
#desc ⇒ Object
Returns the value of attribute desc.
6 7 8 |
# File 'lib/hyperdrive/resource.rb', line 6 def desc @desc end |
#endpoint ⇒ Object (readonly)
Returns the value of attribute endpoint.
5 6 7 |
# File 'lib/hyperdrive/resource.rb', line 5 def endpoint @endpoint end |
#filters ⇒ Object (readonly)
Returns the value of attribute filters.
5 6 7 |
# File 'lib/hyperdrive/resource.rb', line 5 def filters @filters end |
#name ⇒ Object
Returns the value of attribute name.
6 7 8 |
# File 'lib/hyperdrive/resource.rb', line 6 def name @name end |
#request_handlers ⇒ Object (readonly)
Returns the value of attribute request_handlers.
5 6 7 |
# File 'lib/hyperdrive/resource.rb', line 5 def request_handlers @request_handlers end |
Instance Method Details
#allowed_methods ⇒ Object
42 43 44 |
# File 'lib/hyperdrive/resource.rb', line 42 def allowed_methods Hyperdrive::Values.request_methods_symbol_map.values_at(*request_handlers.keys) end |
#define_request_handler(request_method, block) ⇒ Object
26 27 28 29 30 31 |
# File 'lib/hyperdrive/resource.rb', line 26 def define_request_handler(request_method, block) @request_handlers[request_method] = block if request_method == :get @request_handlers[:head] = block end end |
#register_filter(key, description, options = {}) ⇒ Object
21 22 23 24 |
# File 'lib/hyperdrive/resource.rb', line 21 def register_filter(key, description, = {}) = .merge() @filters[key] = { desc: description }.merge() end |
#register_param(key, description, options = {}) ⇒ Object
16 17 18 19 |
# File 'lib/hyperdrive/resource.rb', line 16 def register_param(key, description, = {}) = .merge() @allowed_params[key] = { desc: description }.merge() end |
#request_handler(http_request_method) ⇒ Object
33 34 35 36 |
# File 'lib/hyperdrive/resource.rb', line 33 def request_handler(http_request_method) request_method = Hyperdrive::Values.request_methods_string_map[http_request_method] request_handlers[request_method] end |
#request_method_allowed?(http_request_method) ⇒ Boolean
38 39 40 |
# File 'lib/hyperdrive/resource.rb', line 38 def request_method_allowed?(http_request_method) allowed_methods.include?(http_request_method) end |