Class: Diggit::DevelopersActivity::Analyses::MonthsActivityAnalysis
- Inherits:
-
ActivityAnalysis
- Object
- Analysis
- ActivityAnalysis
- Diggit::DevelopersActivity::Analyses::MonthsActivityAnalysis
show all
- Defined in:
- lib/diggit/developers_activity/analyses/months_activity_analysis.rb
Instance Method Summary
collapse
#load_options, #source_options
#extract_developers_activity
Constructor Details
Returns a new instance of MonthsActivityAnalysis.
17
18
19
20
21
22
|
# File 'lib/diggit/developers_activity/analyses/months_activity_analysis.rb', line 17
def initialize(*args)
super(*args)
@months_to_extract = @options.key?(OPT_MONTHS_TO_EXTRACT) ? @options[OPT_MONTHS_TO_EXTRACT].to_sym : :before
@num_months_to_extract = @options.key?(OPT_NUM_MONTHS_TO_EXTRACT) ? @options[OPT_NUM_MONTHS_TO_EXTRACT].to_i : 12
end
|
Instance Method Details
#clean ⇒ Object
29
30
31
32
|
# File 'lib/diggit/developers_activity/analyses/months_activity_analysis.rb', line 29
def clean
@addons[:db].db[MONTHS_BEFORE_COL].remove({ project: @source }) unless @months_to_extract == :after
@addons[:db].db[MONTHS_AFTER_COL].remove({ project: @source }) unless @months_to_extract == :before
end
|
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
# File 'lib/diggit/developers_activity/analyses/months_activity_analysis.rb', line 69
def
print("Extracting monthly activity (after S_0) ")
STDOUT.flush
Renames.clear
r_0 = @repo.lookup(source_options["cloc-commit-id"])
r_last = @repo.lookup(source_options["R_last"])
t_0 = r_0.author[:time]
walker = Rugged::Walker.new(@repo)
walker.sorting(Rugged::SORT_DATE | Rugged::SORT_REVERSE)
walker.push(r_last)
t_next_month = t_0 + MONTH_SECONDS
month_num = 1
commits = []
walker.each do |commit|
t = commit.author[:time]
next if t < t_0
Renames.(commit, false)
commits << commit if commit.parents.size == 1
if t > t_next_month
print('.')
STDOUT.flush
m = ActivityExtractor.(@source, commits, month_num)
@addons[:db].db[MONTHS_AFTER_COL].insert(m) unless m.empty?
month_num += 1
t_next_month += MONTH_SECONDS
commits = []
end
break if month_num > @num_months_to_extract
end
print("\n")
STDOUT.flush
end
|
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
|
# File 'lib/diggit/developers_activity/analyses/months_activity_analysis.rb', line 34
def
print("Extracting monthly activity (before S_0)")
STDOUT.flush
Renames.clear
r_0 = @repo.lookup(source_options["cloc-commit-id"])
t_first = @repo.lookup(source_options["R_first"]).author[:time]
t_0 = r_0.author[:time]
walker = Rugged::Walker.new(@repo)
walker.sorting(Rugged::SORT_DATE)
walker.push(r_0)
t_previous_month = t_0 - MONTH_SECONDS
month_num = 1
commits = []
walker.each do |commit|
t = commit.author[:time]
Renames.(commit, true)
commits << commit if commit.parents.size == 1
if t < t_previous_month || t < t_first
print('.')
STDOUT.flush
m = (@source, commits, month_num)
@addons[:db].db[MONTHS_BEFORE_COL].insert(m) unless m.empty?
month_num += 1
t_previous_month -= MONTH_SECONDS
commits = []
end
break if t < t_first || month_num > @num_months_to_extract
end
print("\n")
STDOUT.flush
end
|
#run ⇒ Object
24
25
26
27
|
# File 'lib/diggit/developers_activity/analyses/months_activity_analysis.rb', line 24
def run
unless @months_to_extract == :after
unless @months_to_extract == :before
end
|