codespicuous 0.0.4 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/codespicuous/codespicuous.rb +1 -1
- data/lib/codespicuous/codespicuous_config.rb +11 -0
- data/lib/codespicuous/commithistory.rb +36 -0
- data/lib/codespicuous/commithistory_builder.rb +6 -1
- data/lib/codespicuous/committer.rb +9 -1
- data/lib/codespicuous/metrics_generator.rb +7 -6
- data/lib/codespicuous/metrics_generator_csv_files.rb +45 -0
- data/lib/codespicuous/metrics_generator_daniel.rb +1 -1
- data/lib/codespicuous/repositories.rb +12 -0
- data/lib/codespicuous/teams.rb +23 -0
- data/lib/codespicuous/version.rb +1 -1
- data/lib/codespicuous.rb +1 -0
- data/spec/codespicuous_spec.rb +1 -1
- data/spec/commithistory_spec.rb +44 -0
- data/spec/committers_spec.rb +5 -0
- data/spec/metrics_generator_csv_files_spec.rb +77 -0
- data/spec/metrics_generator_daniel_spec.rb +2 -1
- data/spec/metrics_generator_spec.rb +11 -8
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 32369c66cbcbd810e9205237576757eca230612a
|
4
|
+
data.tar.gz: 1ba22aea1525014e6eefcba42caee9318d6645ed
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e913239d16e84541c593216c0c31e44825b52422082b188e00143658488be1822ec35a57ddf7df965c1360a994763a069cd4e7c22346e46599482056be6b97dc
|
7
|
+
data.tar.gz: 139729759092fc037bb447161b651d915dbd0b5fca9306e44ad40b03459c9e5865457e982767386ad01812049362c6320e74ead0696e7a6fb24202e609ff9c88
|
@@ -9,8 +9,11 @@ class CodespicuousConfig
|
|
9
9
|
@offline = false
|
10
10
|
@configuration_file_name = "codespicuous.yaml"
|
11
11
|
@input_path = Pathname.new(".")
|
12
|
+
@output_path = Pathname.new(".")
|
12
13
|
@list_repositories = false
|
13
14
|
@svnlogdir = "svnlog"
|
15
|
+
|
16
|
+
@output_dir_csv_files = "csv_files"
|
14
17
|
end
|
15
18
|
|
16
19
|
def input_path=(path)
|
@@ -32,4 +35,12 @@ class CodespicuousConfig
|
|
32
35
|
def path_to_cached_svn_log_dir
|
33
36
|
(@input_path + Pathname.new(@svnlogdir)).to_s
|
34
37
|
end
|
38
|
+
|
39
|
+
def path_to_output_dir_for_csv_files
|
40
|
+
(@output_path + Pathname.new(@output_dir_csv_files)).to_s
|
41
|
+
end
|
42
|
+
|
43
|
+
def path_to_csv_file(filename)
|
44
|
+
(Pathname.new(path_to_output_dir_for_csv_files) + Pathname.new(filename)).to_s
|
45
|
+
end
|
35
46
|
end
|
@@ -51,6 +51,10 @@ class CommitHistory
|
|
51
51
|
@repositories.repository_names
|
52
52
|
end
|
53
53
|
|
54
|
+
def amount_of_repositories
|
55
|
+
@repositories.amount
|
56
|
+
end
|
57
|
+
|
54
58
|
def amount_of_comitters
|
55
59
|
@committers.amount
|
56
60
|
end
|
@@ -73,4 +77,36 @@ class CommitHistory
|
|
73
77
|
@commits == commit_history.commits
|
74
78
|
end
|
75
79
|
|
80
|
+
def copy_repositories_without_commits
|
81
|
+
repositories = Repositories.new
|
82
|
+
@repositories.each do |repository|
|
83
|
+
repositories.add(repository.clone_without_commits)
|
84
|
+
end
|
85
|
+
repositories
|
86
|
+
end
|
87
|
+
|
88
|
+
def prune_repositories_without_commit
|
89
|
+
@repositories.prune_repositories_without_commit
|
90
|
+
end
|
91
|
+
|
92
|
+
def restrict_to_teams
|
93
|
+
restricted_commit_history = CommitHistory.new
|
94
|
+
|
95
|
+
repositories = copy_repositories_without_commits
|
96
|
+
restricted_commit_history.configure(teams.clone_without_commits, repositories)
|
97
|
+
|
98
|
+
@commits.each do |commit|
|
99
|
+
if @teams.contains_committer?(commit.committer)
|
100
|
+
new_commit = commit.clone
|
101
|
+
new_commit.repository = repositories.repository(commit.repository.name)
|
102
|
+
restricted_commit_history.add_commit(new_commit)
|
103
|
+
end
|
104
|
+
|
105
|
+
end
|
106
|
+
|
107
|
+
restricted_commit_history.prune_repositories_without_commit
|
108
|
+
|
109
|
+
restricted_commit_history
|
110
|
+
end
|
111
|
+
|
76
112
|
end
|
@@ -24,6 +24,11 @@ class CommitHistoryBuilder
|
|
24
24
|
self
|
25
25
|
end
|
26
26
|
|
27
|
+
def without_team
|
28
|
+
@team = nil
|
29
|
+
self
|
30
|
+
end
|
31
|
+
|
27
32
|
def at(date)
|
28
33
|
@commit_date = date
|
29
34
|
add_commit_to_history
|
@@ -43,7 +48,7 @@ class CommitHistoryBuilder
|
|
43
48
|
commit.date = DateTime.parse(@commit_date)
|
44
49
|
commit.repository = @current_repository
|
45
50
|
@commit_history.add_commit(commit)
|
46
|
-
@commit_history.add_team_member(@team, @author)
|
51
|
+
@commit_history.add_team_member(@team, @author) if @team
|
47
52
|
end
|
48
53
|
end
|
49
54
|
|
@@ -9,6 +9,14 @@ class Committer
|
|
9
9
|
@commits = Commits.new
|
10
10
|
end
|
11
11
|
|
12
|
+
def clone_without_commits
|
13
|
+
cloned_committer = Committer.new(username)
|
14
|
+
cloned_committer.first_name = first_name
|
15
|
+
cloned_committer.last_name = last_name
|
16
|
+
cloned_committer.email = email
|
17
|
+
cloned_committer
|
18
|
+
end
|
19
|
+
|
12
20
|
def self.create_committer(login, firstname, lastname, email)
|
13
21
|
committer = Committer.new(login)
|
14
22
|
committer.first_name = firstname
|
@@ -18,7 +26,7 @@ class Committer
|
|
18
26
|
end
|
19
27
|
|
20
28
|
def in_team_with_name?(team_name)
|
21
|
-
@team.name == team_name
|
29
|
+
!@team.nil? && @team.name == team_name
|
22
30
|
end
|
23
31
|
|
24
32
|
def add_commit commit
|
@@ -2,21 +2,22 @@
|
|
2
2
|
|
3
3
|
class MetricsGenerator
|
4
4
|
|
5
|
-
attr_accessor :commit_history
|
5
|
+
attr_accessor :commit_history, :config
|
6
6
|
|
7
|
-
def generate(commit_history)
|
7
|
+
def generate(config, commit_history)
|
8
8
|
@commit_history = commit_history
|
9
|
+
@config = config
|
9
10
|
generate_daniel
|
10
|
-
|
11
|
+
generate_csv_files
|
11
12
|
end
|
12
13
|
|
13
14
|
def generate_daniel
|
14
|
-
daniel = MetricsGeneratorDaniel.new(@commit_history)
|
15
|
+
daniel = MetricsGeneratorDaniel.new(@config, @commit_history)
|
15
16
|
daniel.generate
|
16
17
|
end
|
17
18
|
|
18
|
-
def
|
19
|
-
csv =
|
19
|
+
def generate_csv_files
|
20
|
+
csv = MetricsGeneratorCsvFiles.new(@config, @commit_history)
|
20
21
|
csv.generate
|
21
22
|
end
|
22
23
|
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
|
2
|
+
class MetricsGeneratorCsvFiles
|
3
|
+
|
4
|
+
attr_reader :all_csv_generator, :teams_csv_generator
|
5
|
+
|
6
|
+
def create_csv_files_output_directory
|
7
|
+
Dir.mkdir(@config.path_to_output_dir_for_csv_files) unless Dir.exists?(@config.path_to_output_dir_for_csv_files)
|
8
|
+
end
|
9
|
+
|
10
|
+
def initialize(config, commit_history)
|
11
|
+
@config = config
|
12
|
+
@all_csv_generator = MetricsGeneratorCsv.new(commit_history)
|
13
|
+
@restricted_history = commit_history.restrict_to_teams
|
14
|
+
@teams_csv_generator = MetricsGeneratorCsv.new(@restricted_history)
|
15
|
+
end
|
16
|
+
|
17
|
+
def generate
|
18
|
+
create_csv_files_output_directory
|
19
|
+
create_commit_table_with_week_and_repository_info
|
20
|
+
create_commit_table_with_weeks_and_team_commits
|
21
|
+
create_commit_table_with_committers_and_repository_info
|
22
|
+
create_commit_table_with_weeks_and_committers
|
23
|
+
end
|
24
|
+
|
25
|
+
def create_commit_table_with_week_and_repository_info
|
26
|
+
File.write(@config.path_to_csv_file("all_week_and_repository_info.csv"), @all_csv_generator.create_commit_table_with_week_and_repository_info)
|
27
|
+
File.write(@config.path_to_csv_file("teams_week_and_repository_info.csv"), @teams_csv_generator.create_commit_table_with_week_and_repository_info)
|
28
|
+
end
|
29
|
+
|
30
|
+
def create_commit_table_with_weeks_and_team_commits
|
31
|
+
File.write(@config.path_to_csv_file("teams_week_and_team_commits.csv"), @teams_csv_generator.create_commit_table_with_weeks_and_team_commits)
|
32
|
+
end
|
33
|
+
|
34
|
+
def create_commit_table_with_committers_and_repository_info
|
35
|
+
File.write(@config.path_to_csv_file("teams_committer_and_repository_info.csv"), @teams_csv_generator.create_commit_table_with_committers_and_repository_info)
|
36
|
+
end
|
37
|
+
|
38
|
+
def create_commit_table_with_weeks_and_committers
|
39
|
+
File.write(@config.path_to_csv_file("teams_weeks_and_committers_info.csv"), @all_csv_generator.create_commit_table_with_weeks_and_committers)
|
40
|
+
@restricted_history.teams.each do | team |
|
41
|
+
File.write(@config.path_to_csv_file("teams_weeks_and_committers_info_#{team.name}.csv"), @all_csv_generator.create_commit_table_with_weeks_and_committers(team.name))
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
45
|
+
end
|
@@ -15,10 +15,18 @@ class Repository
|
|
15
15
|
@commits = Commits.new
|
16
16
|
end
|
17
17
|
|
18
|
+
def clone_without_commits
|
19
|
+
Repository.new(@name, @url)
|
20
|
+
end
|
21
|
+
|
18
22
|
def add_commit commit
|
19
23
|
@commits.add(commit)
|
20
24
|
end
|
21
25
|
|
26
|
+
def amount_of_commits
|
27
|
+
@commits.amount
|
28
|
+
end
|
29
|
+
|
22
30
|
def amount_of_commits_in_week(week_start)
|
23
31
|
@commits.amount_of_commits_to_repository_in_week(name, week_start)
|
24
32
|
end
|
@@ -61,6 +69,10 @@ class Repositories
|
|
61
69
|
}
|
62
70
|
end
|
63
71
|
|
72
|
+
def prune_repositories_without_commit
|
73
|
+
@repositories.delete_if { |key, value| value.amount_of_commits == 0 }
|
74
|
+
end
|
75
|
+
|
64
76
|
def empty?
|
65
77
|
@repositories.empty?
|
66
78
|
end
|
data/lib/codespicuous/teams.rb
CHANGED
@@ -8,6 +8,14 @@ class Team
|
|
8
8
|
@members = {}
|
9
9
|
end
|
10
10
|
|
11
|
+
def clone_without_commits
|
12
|
+
cloned_team = Team.new(name)
|
13
|
+
members.each do | member |
|
14
|
+
cloned_team.add_member(member.clone_without_commits)
|
15
|
+
end
|
16
|
+
cloned_team
|
17
|
+
end
|
18
|
+
|
11
19
|
def add_member(member)
|
12
20
|
@members[member.username] = member
|
13
21
|
member.team = self
|
@@ -62,6 +70,14 @@ class Teams
|
|
62
70
|
@teams = {}
|
63
71
|
end
|
64
72
|
|
73
|
+
def clone_without_commits
|
74
|
+
cloned_teams = Teams.new
|
75
|
+
teams.each do | name, team|
|
76
|
+
cloned_teams.add(team.clone_without_commits)
|
77
|
+
end
|
78
|
+
cloned_teams
|
79
|
+
end
|
80
|
+
|
65
81
|
def find_by_name(name)
|
66
82
|
@teams[name]
|
67
83
|
end
|
@@ -76,6 +92,13 @@ class Teams
|
|
76
92
|
}
|
77
93
|
end
|
78
94
|
|
95
|
+
def contains_committer?(committer)
|
96
|
+
each_member { |team, member|
|
97
|
+
return true if member.username == committer.username
|
98
|
+
}
|
99
|
+
false
|
100
|
+
end
|
101
|
+
|
79
102
|
def committers
|
80
103
|
committers = Committers.new
|
81
104
|
each_member { |team, committer| committers.add(committer) }
|
data/lib/codespicuous/version.rb
CHANGED
data/lib/codespicuous.rb
CHANGED
@@ -31,6 +31,7 @@ require_relative 'codespicuous/codespicuous_config.rb'
|
|
31
31
|
require_relative 'codespicuous/metrics_generator.rb'
|
32
32
|
require_relative 'codespicuous/metrics_generator_daniel.rb'
|
33
33
|
require_relative 'codespicuous/metrics_generator_csv.rb'
|
34
|
+
require_relative 'codespicuous/metrics_generator_csv_files.rb'
|
34
35
|
|
35
36
|
require_relative 'codespicuous/repository_lister.rb'
|
36
37
|
# App
|
data/spec/codespicuous_spec.rb
CHANGED
@@ -63,7 +63,7 @@ describe "Codespicuous command line" do
|
|
63
63
|
it "generates output" do
|
64
64
|
generator = MetricsGenerator.new
|
65
65
|
expect(MetricsGenerator).to receive(:new).and_return(generator)
|
66
|
-
expect(generator).to receive(:generate).with(subject.commit_history)
|
66
|
+
expect(generator).to receive(:generate).with(subject.config, subject.commit_history)
|
67
67
|
subject.generate_output
|
68
68
|
end
|
69
69
|
|
data/spec/commithistory_spec.rb
CHANGED
@@ -53,5 +53,49 @@ describe "Team commits per week table" do
|
|
53
53
|
expect(@commit_history.amount_of_commits_for_team_in_week("Cheese", DateTime.new(2016,03,28))).to eq 1
|
54
54
|
end
|
55
55
|
|
56
|
+
context "extracting a subset of the commit history" do
|
57
|
+
|
58
|
+
before (:each) do
|
59
|
+
@large_commit_history = CommitHistoryBuilder.new.
|
60
|
+
in_repository("one").
|
61
|
+
commits_of("basvodde").of_team("Wine").
|
62
|
+
at("2016-04-18").times(2).
|
63
|
+
commits_of("daniel").of_team("Cheese").
|
64
|
+
at("2016-03-28").
|
65
|
+
commits_of("janne").without_team.
|
66
|
+
at("2016-08-18").times(2).
|
67
|
+
in_repository("cpputest").
|
68
|
+
commits_of("janne").without_team.
|
69
|
+
at("2016-02-29").
|
70
|
+
build
|
71
|
+
|
72
|
+
@restricted_commit_history = @large_commit_history.restrict_to_teams
|
73
|
+
end
|
74
|
+
|
75
|
+
it "will only have two committers in the restricted commit history" do
|
76
|
+
expect(@large_commit_history.amount_of_comitters).to eq 3
|
77
|
+
expect(@restricted_commit_history.amount_of_comitters).to eq 2
|
78
|
+
end
|
79
|
+
|
80
|
+
it "will only have the repositories of the restricted committers" do
|
81
|
+
expect(@large_commit_history.amount_of_repositories).to eq 2
|
82
|
+
expect(@restricted_commit_history.amount_of_repositories).to eq 1
|
83
|
+
end
|
84
|
+
|
85
|
+
it "will also be able to get the right amount of commits via the reposities" do
|
86
|
+
expect(@large_commit_history.repository("one").amount_of_commits).to eq 5
|
87
|
+
expect(@restricted_commit_history.repository("one").amount_of_commits).to eq 3
|
88
|
+
end
|
89
|
+
|
90
|
+
it "will also be able to get the right amount of commits via the comitter" do
|
91
|
+
expect(@large_commit_history.committer("basvodde").amount_of_commits).to eq 2
|
92
|
+
expect(@restricted_commit_history.committer("basvodde").amount_of_commits).to eq 2
|
93
|
+
end
|
94
|
+
|
95
|
+
it "will also be able to get the right amount of team members in the teams" do
|
96
|
+
expect(@large_commit_history.team("Wine").amount_of_members).to eq 1
|
97
|
+
expect(@restricted_commit_history.team("Wine").amount_of_members).to eq 1
|
98
|
+
end
|
99
|
+
end
|
56
100
|
end
|
57
101
|
|
data/spec/committers_spec.rb
CHANGED
@@ -34,6 +34,11 @@ describe "The committers and the teams that we're examining" do
|
|
34
34
|
expect(@teams.amount).to eq 2
|
35
35
|
end
|
36
36
|
|
37
|
+
it "is not in the team with name if th committer is not in a team" do
|
38
|
+
committer = Committer.new("lonely_guy")
|
39
|
+
expect(committer.in_team_with_name?("nice team")).to eq false
|
40
|
+
end
|
41
|
+
|
37
42
|
it "has all the committer information" do
|
38
43
|
bas = @committers.find_by_username('basvodde')
|
39
44
|
expect(bas.first_name).to eq "Bas"
|
@@ -0,0 +1,77 @@
|
|
1
|
+
|
2
|
+
describe "Generate csv metric files" do
|
3
|
+
|
4
|
+
before (:each) do
|
5
|
+
@commit_history = CommitHistory.new
|
6
|
+
@generator = MetricsGeneratorCsvFiles.new(CodespicuousConfig.new, @commit_history)
|
7
|
+
end
|
8
|
+
|
9
|
+
it "generates different type of csv file metrics" do
|
10
|
+
|
11
|
+
expect(@generator).to receive(:create_csv_files_output_directory)
|
12
|
+
expect(@generator).to receive(:create_commit_table_with_week_and_repository_info)
|
13
|
+
expect(@generator).to receive(:create_commit_table_with_weeks_and_team_commits)
|
14
|
+
expect(@generator).to receive(:create_commit_table_with_committers_and_repository_info)
|
15
|
+
expect(@generator).to receive(:create_commit_table_with_weeks_and_committers)
|
16
|
+
|
17
|
+
@generator.generate
|
18
|
+
end
|
19
|
+
|
20
|
+
it "Should create an output directory when it doesn't exists" do
|
21
|
+
expect(Dir).to receive(:exists?).with("csv_files").and_return(false)
|
22
|
+
expect(Dir).to receive(:mkdir).with("csv_files")
|
23
|
+
@generator.create_csv_files_output_directory
|
24
|
+
end
|
25
|
+
|
26
|
+
it "Should not create an output directory when it does exists" do
|
27
|
+
expect(Dir).to receive(:exists?).with("csv_files").and_return(true)
|
28
|
+
expect(Dir).not_to receive(:mkdir).with("csv_files")
|
29
|
+
@generator.create_csv_files_output_directory
|
30
|
+
end
|
31
|
+
|
32
|
+
it "can generate the week and repository files" do
|
33
|
+
expect(@generator.all_csv_generator).to receive(:create_commit_table_with_week_and_repository_info).and_return("all_csv_data")
|
34
|
+
expect(@generator.teams_csv_generator).to receive(:create_commit_table_with_week_and_repository_info).and_return("teams_csv_data")
|
35
|
+
expect(File).to receive(:write).with("csv_files/all_week_and_repository_info.csv", "all_csv_data")
|
36
|
+
expect(File).to receive(:write).with("csv_files/teams_week_and_repository_info.csv", "teams_csv_data")
|
37
|
+
|
38
|
+
@generator.create_commit_table_with_week_and_repository_info
|
39
|
+
end
|
40
|
+
|
41
|
+
it "can generate the week and team commit files" do
|
42
|
+
expect(@generator.teams_csv_generator).to receive(:create_commit_table_with_weeks_and_team_commits).and_return("csv_data")
|
43
|
+
expect(File).to receive(:write).with("csv_files/teams_week_and_team_commits.csv", "csv_data")
|
44
|
+
|
45
|
+
@generator.create_commit_table_with_weeks_and_team_commits
|
46
|
+
end
|
47
|
+
|
48
|
+
it "can generate the commit and repository info files" do
|
49
|
+
expect(@generator.teams_csv_generator).to receive(:create_commit_table_with_committers_and_repository_info).and_return("csv_data")
|
50
|
+
expect(File).to receive(:write).with("csv_files/teams_committer_and_repository_info.csv", "csv_data")
|
51
|
+
|
52
|
+
@generator.create_commit_table_with_committers_and_repository_info
|
53
|
+
end
|
54
|
+
|
55
|
+
it "can generate the weeks and committers info files" do
|
56
|
+
expect(@generator.all_csv_generator).to receive(:create_commit_table_with_weeks_and_committers).and_return("csv_data")
|
57
|
+
expect(File).to receive(:write).with("csv_files/teams_weeks_and_committers_info.csv", "csv_data")
|
58
|
+
|
59
|
+
@generator.create_commit_table_with_weeks_and_committers
|
60
|
+
end
|
61
|
+
|
62
|
+
it "can generate the weeks and committers per team info files" do
|
63
|
+
team = Team.new("teamx")
|
64
|
+
teams = Teams.new
|
65
|
+
teams.add(team)
|
66
|
+
@commit_history.configure(teams, @commit_history.repositories)
|
67
|
+
@generator = MetricsGeneratorCsvFiles.new(CodespicuousConfig.new, @commit_history)
|
68
|
+
|
69
|
+
expect(@generator.all_csv_generator).to receive(:create_commit_table_with_weeks_and_committers).and_return("csv_data")
|
70
|
+
expect(@generator.all_csv_generator).to receive(:create_commit_table_with_weeks_and_committers).with("teamx").and_return("csv_data2")
|
71
|
+
expect(File).to receive(:write).with("csv_files/teams_weeks_and_committers_info.csv", "csv_data")
|
72
|
+
expect(File).to receive(:write).with("csv_files/teams_weeks_and_committers_info_teamx.csv", "csv_data2")
|
73
|
+
|
74
|
+
@generator.create_commit_table_with_weeks_and_committers
|
75
|
+
end
|
76
|
+
|
77
|
+
end
|
@@ -3,7 +3,8 @@ describe "Daniel format metrics generator" do
|
|
3
3
|
|
4
4
|
it "exists" do
|
5
5
|
commit_history = CommitHistory.new
|
6
|
-
|
6
|
+
config = CodespicuousConfig.new
|
7
|
+
daniel = MetricsGeneratorDaniel.new(config, commit_history)
|
7
8
|
daniel.generate
|
8
9
|
end
|
9
10
|
|
@@ -3,21 +3,24 @@ describe "Generate different types of code metrics" do
|
|
3
3
|
|
4
4
|
before (:each) do
|
5
5
|
@commit_history = CommitHistory.new
|
6
|
+
@config = CodespicuousConfig.new
|
6
7
|
@subject = MetricsGenerator.new
|
8
|
+
|
9
|
+
@subject.commit_history = @commit_history
|
10
|
+
@subject.config = @config
|
7
11
|
end
|
8
12
|
|
9
13
|
it "can generate different metrics" do
|
10
14
|
expect(@subject).to receive(:generate_daniel)
|
11
|
-
expect(@subject).to receive(:
|
15
|
+
expect(@subject).to receive(:generate_csv_files)
|
12
16
|
|
13
|
-
@subject.generate(@commit_history)
|
17
|
+
@subject.generate(@config, @commit_history)
|
14
18
|
end
|
15
19
|
|
16
20
|
it "generate daniel format metrics" do
|
17
|
-
@subject.commit_history = @commit_history
|
18
21
|
|
19
|
-
daniel = MetricsGeneratorDaniel.new(@commit_history)
|
20
|
-
expect(MetricsGeneratorDaniel).to receive(:new).with(@commit_history).and_return(daniel)
|
22
|
+
daniel = MetricsGeneratorDaniel.new(@config, @commit_history)
|
23
|
+
expect(MetricsGeneratorDaniel).to receive(:new).with(@config, @commit_history).and_return(daniel)
|
21
24
|
expect(daniel).to receive(:generate)
|
22
25
|
|
23
26
|
@subject.generate_daniel
|
@@ -26,10 +29,10 @@ describe "Generate different types of code metrics" do
|
|
26
29
|
it "generate csv format metrics" do
|
27
30
|
@subject.commit_history = @commit_history
|
28
31
|
|
29
|
-
csv =
|
30
|
-
expect(
|
32
|
+
csv = MetricsGeneratorCsvFiles.new(@config, @commit_history)
|
33
|
+
expect(MetricsGeneratorCsvFiles).to receive(:new).with(@config, @commit_history).and_return(csv)
|
31
34
|
expect(csv).to receive(:generate)
|
32
35
|
|
33
|
-
@subject.
|
36
|
+
@subject.generate_csv_files
|
34
37
|
end
|
35
38
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: codespicuous
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bas Vodde
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-08-
|
11
|
+
date: 2017-08-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -91,6 +91,7 @@ files:
|
|
91
91
|
- lib/codespicuous/dateutil.rb
|
92
92
|
- lib/codespicuous/metrics_generator.rb
|
93
93
|
- lib/codespicuous/metrics_generator_csv.rb
|
94
|
+
- lib/codespicuous/metrics_generator_csv_files.rb
|
94
95
|
- lib/codespicuous/metrics_generator_daniel.rb
|
95
96
|
- lib/codespicuous/participantsparser_from_csv.rb
|
96
97
|
- lib/codespicuous/repositories.rb
|
@@ -108,6 +109,7 @@ files:
|
|
108
109
|
- spec/committers_spec.rb
|
109
110
|
- spec/danielparser_spec.rb
|
110
111
|
- spec/integration_filezilla_spec.rb
|
112
|
+
- spec/metrics_generator_csv_files_spec.rb
|
111
113
|
- spec/metrics_generator_csv_spec.rb
|
112
114
|
- spec/metrics_generator_daniel_spec.rb
|
113
115
|
- spec/metrics_generator_spec.rb
|