kalibro_configuration.rb
1.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
class KalibroConfiguration < KalibroClient::Entities::Configurations::KalibroConfiguration
include KalibroRecord
attr_writer :attributes
def self.public_or_owned_by_user(user=nil)
kalibro_configuration_attributes = KalibroConfigurationAttributes.where(public: true)
kalibro_configuration_attributes += KalibroConfigurationAttributes.where(user_id: user.id, public: false) if user
kalibro_configuration_attributes.map { |kalibro_configuration_attribute|
begin
self.find(kalibro_configuration_attribute.kalibro_configuration_id)
rescue Likeno::Errors::RecordNotFound
nil
end
}.compact
end
def self.public
self.public_or_owned_by_user
end
def self.latest(count = 1)
all.sort { |one, another| another.id <=> one.id }.select { |kalibro_configuration|
attributes = kalibro_configuration.attributes
attributes && attributes.public
}.first(count)
end
def attributes
@attributes ||= KalibroConfigurationAttributes.find_by(kalibro_configuration_id: self.id)
end
def destroy
attributes.destroy unless attributes.nil?
@attributes = nil
super
end
end