Class: Alula::Dcp::BaseResource
- Inherits:
-
Alula::DcpResource
- Object
- Alula::DcpResource
- Alula::Dcp::BaseResource
- Defined in:
- lib/alula/resources/dcp/base_resource.rb
Overview
Base class for DCP resources
Direct Known Subclasses
Instance Attribute Summary
Attributes inherited from Alula::DcpResource
#device_id, #dirty_attributes, #errors, #index, #meta, #rate_limit, #raw_data, #staged, #value
Class Method Summary collapse
- .api_name(name = nil) ⇒ Object
-
.resource_name(name = nil) ⇒ Object
Infer resource name from classname if not provided.
- .resource_url(device_id, index = nil) ⇒ Object
Instance Method Summary collapse
Methods inherited from Alula::DcpResource
#annotate_errors, #apply_attributes, #as_json, #as_patchable_json, build, class_name, #clone, #construct_from, #errors?, #filter_builder, #find_value, #initialize, #model_name, #reconstruct_from, #refresh
Constructor Details
This class inherits a constructor from Alula::DcpResource
Class Method Details
.api_name(name = nil) ⇒ Object
8 9 10 11 12 13 14 15 16 |
# File 'lib/alula/resources/dcp/base_resource.rb', line 8 def api_name(name = nil) if name @api_name = name elsif @api_name @api_name else superclass.api_name end end |
.resource_name(name = nil) ⇒ Object
Infer resource name from classname if not provided
19 20 21 22 23 24 25 26 27 |
# File 'lib/alula/resources/dcp/base_resource.rb', line 19 def resource_name(name = nil) if name @resource_name = name elsif @resource_name @resource_name else @resource_name = self.name.split('::').last.downcase.to_sym end end |
.resource_url(device_id, index = nil) ⇒ Object
29 30 31 32 |
# File 'lib/alula/resources/dcp/base_resource.rb', line 29 def resource_url(device_id, index = nil) base_url = "/#{api_name}/v2/helix/#{device_id}/#{resource_name}" index ? "#{base_url}/#{index}" : base_url end |
Instance Method Details
#resource_url(device_id = self.device_id, index = self.index) ⇒ Object
Instance method
38 39 40 |
# File 'lib/alula/resources/dcp/base_resource.rb', line 38 def resource_url(device_id = self.device_id, index = self.index) "/#{self.class.api_name}/v2/helix/#{device_id}/#{self.class.resource_name}/#{index}" end |