Class: Circonus::BaseModel
- Inherits:
-
Object
- Object
- Circonus::BaseModel
show all
- Defined in:
- lib/circonus/models/base_model.rb
Direct Known Subclasses
Account, Acknowledgement, Alert, Annotation, Broker, Check, CheckBundle, CheckMove, ContactGroup, Data, Graph, Maintenance, MetricCluster, RebuildBroker, RuleSet, RuleSetGroup, Tag, Template, User, Worksheet
Constant Summary
collapse
- ACTIONS_CLASS =
{
all: Circonus::Actions::ClassMethods::All,
find: Circonus::Actions::ClassMethods::Find,
create: Circonus::Actions::ClassMethods::Create,
search: Circonus::Actions::ClassMethods::Search
}
- ACTIONS_INSTANCE =
{
create: Circonus::Actions::InstanceMethods::Create,
update: Circonus::Actions::InstanceMethods::Update,
destroy: Circonus::Actions::InstanceMethods::Destroy
}
Class Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(data = {}) ⇒ BaseModel
Returns a new instance of BaseModel.
50
51
52
53
54
55
|
# File 'lib/circonus/models/base_model.rb', line 50
def initialize(data = {})
self.class::attributes.each do |attribute|
value = data[attribute.to_s].nil? ? data[attribute.to_sym] : data[attribute.to_s]
send("#{attribute}=", value)
end
end
|
Class Attribute Details
.attributes ⇒ Object
Returns the value of attribute attributes.
17
18
19
|
# File 'lib/circonus/models/base_model.rb', line 17
def attributes
@attributes
end
|
Class Method Details
.actions(*acts) ⇒ Object
32
33
34
35
36
37
38
39
40
41
42
43
|
# File 'lib/circonus/models/base_model.rb', line 32
def actions(*acts)
acts.each do |action|
module_class = ACTIONS_CLASS[action]
module_instance = ACTIONS_INSTANCE[action]
if module_class || module_instance
extend(module_class) if module_class
include(module_instance) if module_instance
else
fail 'Wrong action'
end
end
end
|
.circonus_path(path) ⇒ Object
19
20
21
|
# File 'lib/circonus/models/base_model.rb', line 19
def circonus_path(path)
@circonus_path = path.to_s
end
|
.client ⇒ Object
45
46
47
|
# File 'lib/circonus/models/base_model.rb', line 45
def client
::Circonus.client
end
|
.fields(*attributes) ⇒ Object
27
28
29
30
|
# File 'lib/circonus/models/base_model.rb', line 27
def fields(*attributes)
@attributes = attributes.map(&:to_s)
attr_accessor(*attributes)
end
|
.path ⇒ Object
23
24
25
|
# File 'lib/circonus/models/base_model.rb', line 23
def path
@circonus_path ||= name.split('::').last.gsub(/([a-z\d])([A-Z])/,'\1_\2').downcase
end
|
Instance Method Details
#attributes ⇒ Object
61
62
63
|
# File 'lib/circonus/models/base_model.rb', line 61
def attributes
Hash[self.class::attributes.map { |attr| [attr, send(attr)] }]
end
|
#client ⇒ Object
69
70
71
|
# File 'lib/circonus/models/base_model.rb', line 69
def client
self.class.client
end
|
#filtered_attributes ⇒ Object
65
66
67
|
# File 'lib/circonus/models/base_model.rb', line 65
def filtered_attributes
attributes.reject { |_k, v| v.nil? }
end
|
#id ⇒ Object
57
58
59
|
# File 'lib/circonus/models/base_model.rb', line 57
def id
_cid ? _cid.split('/').last : nil
end
|
#path ⇒ Object
73
74
75
|
# File 'lib/circonus/models/base_model.rb', line 73
def path
self.class.path
end
|