Class: Commits
- Inherits:
-
Object
- Object
- Commits
- Defined in:
- lib/codespicuous/commits.rb
Instance Attribute Summary collapse
-
#commits ⇒ Object
readonly
Returns the value of attribute commits.
Instance Method Summary collapse
- #+(commits) ⇒ Object
- #==(commits) ⇒ Object
- #[](index) ⇒ Object
- #add(commit) ⇒ Object
- #add_commits(commits) ⇒ Object
- #amount ⇒ Object
- #amount_of_commits_in_week(week_start) ⇒ Object
- #amount_of_commits_to_repository(name) ⇒ Object
- #amount_of_commits_to_repository_in_week(name, week_start) ⇒ Object
- #amount_of_weeks_committed_in_repository(name) ⇒ Object
- #commits_in_repository(name) ⇒ Object
- #each ⇒ Object
- #earliest_commit_date ⇒ Object
- #find_by_committer(name) ⇒ Object
- #find_commit(repository, revision) ⇒ Object
-
#initialize(commits = []) ⇒ Commits
constructor
A new instance of Commits.
- #inject(value, &block) ⇒ Object
- #latest_commit_date ⇒ Object
- #set_repository(repository) ⇒ Object
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
#commits ⇒ Object (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 |
#amount ⇒ Object
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 |
#each ⇒ Object
69 70 71 72 73 |
# File 'lib/codespicuous/commits.rb', line 69 def each @commits.each { |commit| yield commit } end |
#earliest_commit_date ⇒ Object
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. == 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_date ⇒ Object
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 |