blob: 39b20e3b8aff54e0c859be63419c5d101dbbc730 (
plain)
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
require 'rexml/document'
class Developer < ActiveRecord::Base
include REXML
has_and_belongs_to_many :herds
has_many :project_members
validates_presence_of :nickname
USERINFO = '/home/nichoj/checkouts/gentoo/xml/htdocs/proj/en/devrel/roll-call/userinfo.xml'
PLANET_INI_URL = 'http://sources.gentoo.org/viewcvs.py/*checkout*/planet/configs/planet.ini'
def cia_rss_url
"http://cia.navi.cx/stats/author/#{self.handle}/.rss"
end
def email
"#{self.nickname}@gentoo.org" unless self.nickname.nil?
end
def Developer.load_planet_settings
open(PLANET_INI_URL) do |file|
while line = file.gets do
# if line looks like "[asfasdfadfa]"
if line =~ /^\[(.*)\]$/
url = $1
next if url == "Planet" or url == "DEFAULT"
data = {}
while line = file.gets do
line.chomp!
break if line == ""
# line looks like "key = value"
line =~ /(.*) = (.*)$/
data[$1] = $2
end
dev = find_by_nickname data['username']
next if dev.nil?
dev.hackergotchi = "http://planet.gentoo.org/images/#{data['face']}" unless data['face'].nil?
#self.blog_rss = url
dev.save!
end
end
end
end
def Developer.load_from_userinfo
file = File.new USERINFO
doc = Document.new file
doc.root.elements.each('user') do |user|
dev = find_by_nickname user.attributes['username']
if dev.nil?
dev = Developer.create
dev.nickname = user.attributes['username']
end
dev.realname = user.elements['realname'].attributes['fullname']
dev.pgpkey = user.elements['pgpkey'].text
dev.joined_on = user.elements['joined'].text
dev.roles = user.elements['roles'].text unless user.elements['roles'].nil?
dev.location = user.elements['location'].text unless user.elements['location'].nil?
if user.elements['status']
dev.status = user.elements['status'].text
else
dev.status = 'active'
end
dev.save!
end
end
end
|