Class: Commits

Inherits:
Object
  • Object
show all
Defined in:
lib/codespicuous/commits.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(commits = []) ⇒ Commits

Returns a new instance of Commits.



61
62
63
# File 'lib/codespicuous/commits.rb', line 61

def initialize(commits = [])
  @commits = commits
end

Instance Attribute Details

#commitsObject (readonly)

Returns the value of attribute commits.



59
60
61
# File 'lib/codespicuous/commits.rb', line 59

def commits
  @commits
end

Instance Method Details

#+(commits) ⇒ Object



141
142
143
144
145
146
# File 'lib/codespicuous/commits.rb', line 141

def +(commits)
  result = Commits.new
  result.add_commits(self)
  result.add_commits(commits)
  result
end

#==(commits) ⇒ Object



137
138
139
# File 'lib/codespicuous/commits.rb', line 137

def == commits
  @commits == commits.commits
end

#[](index) ⇒ Object



65
66
67
# File 'lib/codespicuous/commits.rb', line 65

def [] index
  @commits[index]
end

#add(commit) ⇒ Object



83
84
85
# File 'lib/codespicuous/commits.rb', line 83

def add commit
  @commits << commit
end

#add_commits(commits) ⇒ Object



87
88
89
90
91
# File 'lib/codespicuous/commits.rb', line 87

def add_commits commits
  commits.each { |commit|
    add commit
  }
end

#amountObject



115
116
117
# File 'lib/codespicuous/commits.rb', line 115

def amount
  @commits.size
end

#amount_of_commits_in_week(week_start) ⇒ Object



127
128
129
# File 'lib/codespicuous/commits.rb', line 127

def amount_of_commits_in_week(week_start)
  @commits.select { |commit| commit.in_week?(week_start)}.size
end

#amount_of_commits_to_repository(name) ⇒ Object



119
120
121
# File 'lib/codespicuous/commits.rb', line 119

def amount_of_commits_to_repository(name)
  commits_in_repository(name).size
end

#amount_of_commits_to_repository_in_week(name, week_start) ⇒ Object



131
132
133
134
135
# File 'lib/codespicuous/commits.rb', line 131

def amount_of_commits_to_repository_in_week(name, week_start)
  commits_in_repository(name).select { |commit|
    commit.in_week?(week_start)
  }.size
end

#amount_of_weeks_committed_in_repository(name) ⇒ Object



123
124
125
# File 'lib/codespicuous/commits.rb', line 123

def amount_of_weeks_committed_in_repository(name)
  commits_in_repository(name).collect { |commit| [commit.date.cwyear, commit.date.cweek]}.uniq.size
end

#commits_in_repository(name) ⇒ Object



79
80
81
# File 'lib/codespicuous/commits.rb', line 79

def commits_in_repository(name)
  @commits.select { |commit| commit.repository.name == name }
end

#eachObject



69
70
71
72
73
# File 'lib/codespicuous/commits.rb', line 69

def each
  @commits.each { |commit|
    yield commit
  }
end

#earliest_commit_dateObject



107
108
109
# File 'lib/codespicuous/commits.rb', line 107

def earliest_commit_date
  @commits.inject(DateTime.now) { |date, commit| date < commit.date ? date : commit.date }
end

#find_by_committer(name) ⇒ Object



103
104
105
# File 'lib/codespicuous/commits.rb', line 103

def find_by_committer name
  Commits.new (@commits.select { |commit| commit.author == name })
end

#find_commit(repository, revision) ⇒ Object



99
100
101
# File 'lib/codespicuous/commits.rb', line 99

def find_commit(repository, revision)
  @commits.find { |commit| commit.repository == repository && commit.revision == revision}
end

#inject(value, &block) ⇒ Object



75
76
77
# File 'lib/codespicuous/commits.rb', line 75

def inject(value, &block)
  @commits.inject(value, &block)
end

#latest_commit_dateObject



111
112
113
# File 'lib/codespicuous/commits.rb', line 111

def latest_commit_date
  @commits.inject(DateTime.new(1977)) { |date, commit| date > commit.date ? date : commit.date }
end

#set_repository(repository) ⇒ Object



93
94
95
96
97
# File 'lib/codespicuous/commits.rb', line 93

def set_repository(repository)
  each { |commit|
    commit.repository = repository
  }
end