community.rb
1.36 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
39
40
41
42
43
44
45
46
47
48
49
50
51
require_dependency "community"
class Community
def attr_to_hash
attrs = super
attrs["members-count"] = self.members.count
attrs["members"] = []
self.members.each do |member|
attrs_members = {
"is_admin" => self.admins.include?(member),
"id" => member.id,
"identifier" => member.identifier,
"name" => member.name
}
attrs['members'] << attrs_members
end
if self.respond_to?("software?") && self.software?
attrs['software_data'] = {
"public_software" => self.software_info.public_software,
"acronym" => self.software_info.acronym,
"finality" => self.software_info.finality,
"repository_link" => self.software_info.repository_link,
"license_info" => {
"id" => self.software_info.license_info.id,
"version" => self.software_info.license_info.version,
"link" => self.software_info.license_info.link,
},
"categories" => []
}
self.categories.each do |category|
if Category.last.parent.name == "Software"
category_info = {
"id" => category.id,
"name" => category.name,
"slug" => category.slug,
"path" => category.path
}
attrs['software_data']["categories"] << category_info
end
end
end
attrs
end
end