Class: Payload::ARMObject

Inherits:
Object
  • Object
show all
Defined in:
lib/payload/arm/object.rb

Constant Summary collapse

@@cache =
{}

Class Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(data) ⇒ ARMObject

Returns a new instance of ARMObject.



13
14
15
# File 'lib/payload/arm/object.rb', line 13

def initialize(data)
	self.set_data(data)
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(name, *args) ⇒ Object



39
40
41
42
43
44
45
46
# File 'lib/payload/arm/object.rb', line 39

def method_missing(name, *args)
	attr = name.to_s
	if @data.key?(attr)
		return @data[attr]
	else
		super
	end
end

Class Attribute Details

.dataObject (readonly)

Returns the value of attribute data.



10
11
12
# File 'lib/payload/arm/object.rb', line 10

def data
  @data
end

.polyObject (readonly)

Returns the value of attribute poly.



10
11
12
# File 'lib/payload/arm/object.rb', line 10

def poly
  @poly
end

.specObject (readonly)

Returns the value of attribute spec.



10
11
12
# File 'lib/payload/arm/object.rb', line 10

def spec
  @spec
end

Class Method Details

.create(*args, **data) ⇒ Object



60
61
62
63
64
65
66
# File 'lib/payload/arm/object.rb', line 60

def self.create(*args, **data)
	if args.length != 0
		return Payload::ARMRequest.new(self).create(args[0])
	else
		return Payload::ARMRequest.new(self).create(data)
	end
end

.delete(objects) ⇒ Object



72
73
74
# File 'lib/payload/arm/object.rb', line 72

def self.delete(objects)
	return Payload::ARMRequest.new(self).delete(objects)
end

.filter_by(*args, **data) ⇒ Object



56
57
58
# File 'lib/payload/arm/object.rb', line 56

def self.filter_by(*args, **data)
	return Payload::ARMRequest.new(self).filter_by(*args, **data)
end

.get(id) ⇒ Object



68
69
70
# File 'lib/payload/arm/object.rb', line 68

def self.get(id)
	return Payload::ARMRequest.new(self).get(id)
end

.new(data) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/payload/arm/object.rb', line 17

def self.new(data)
	if data.key?('id') and @@cache.key?(data['id'])
		@@cache[data['id']].set_data(data)
		return @@cache[data['id']]
	else
		inst = super
		if data.key?('id') and not data['id'].nil? and not data['id'].empty?
			@@cache[data['id']] = inst
		end

		return inst
	end
end

.select(*args, **data) ⇒ Object



52
53
54
# File 'lib/payload/arm/object.rb', line 52

def self.select(*args, **data)
	return Payload::ARMRequest.new(self).select(*args, **data)
end

Instance Method Details

#[](key) ⇒ Object



48
49
50
# File 'lib/payload/arm/object.rb', line 48

def [](key)
	return @data[key]
end

#dataObject



31
32
33
# File 'lib/payload/arm/object.rb', line 31

def data
	@data
end

#deleteObject



80
81
82
# File 'lib/payload/arm/object.rb', line 80

def delete()
	return Payload::ARMRequest.new(self.class)._request('Delete', id: self.id)
end

#set_data(data) ⇒ Object



35
36
37
# File 'lib/payload/arm/object.rb', line 35

def set_data(data)
	@data = data
end

#update(**update) ⇒ Object



76
77
78
# File 'lib/payload/arm/object.rb', line 76

def update(**update)
	return Payload::ARMRequest.new(self.class)._request('Put', id: self.id, json: update)
end