Class: Alula::Dcp::BaseResource

Inherits:
Alula::DcpResource show all
Defined in:
lib/alula/resources/dcp/base_resource.rb

Overview

Base class for DCP resources

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

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