Class: Sisense::API::Resource

Inherits:
Object
  • Object
show all
Defined in:
lib/sisense/api/resource.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(data = {}) ⇒ Resource

Returns a new instance of Resource.



4
5
6
# File 'lib/sisense/api/resource.rb', line 4

def initialize(data = {})
  convert_to_obj(data)
end

Class Method Details

.api_clientObject



8
9
10
# File 'lib/sisense/api/resource.rb', line 8

def self.api_client
  @api_client ||= Sisense::API::Client.new
end

.class_nameObject



12
13
14
# File 'lib/sisense/api/resource.rb', line 12

def self.class_name
  name.split("::")[-1]
end

.descendantsObject



23
24
25
26
27
# File 'lib/sisense/api/resource.rb', line 23

def self.descendants
  ObjectSpace.each_object(Class).select do |klass|
    klass < self && klass != Sisense::API::NestedResource
  end
end

.resource_base_path(use_legacy_api: false) ⇒ Object

Raises:

  • (NotImplementedError)


16
17
18
19
20
21
# File 'lib/sisense/api/resource.rb', line 16

def self.resource_base_path(use_legacy_api: false)
  raise NotImplementedError, "Sisense::API::Resource is an abstract class" if self == Resource

  path_base = use_legacy_api ? "/api/" : "/api/v1/"
  path_base + self::RESOURCE_NAME
end

Instance Method Details

#to_hObject



29
30
31
32
33
34
35
# File 'lib/sisense/api/resource.rb', line 29

def to_h
  instance_variables.each_with_object({}) do |instance_variable, h|
    key = instance_variable[1..instance_variable.length]
    value = instance_variable_get(instance_variable)
    h[key.to_sym] = build_hash_value_from_attribute_value(value)
  end
end