From 00e99ea4af6d2cd22017d5dedcc6b5e3718ba257 Mon Sep 17 00:00:00 2001 From: Tomasz Gieniusz Date: Fri, 12 Oct 2012 18:30:07 +0200 Subject: [PATCH] activity creation dryed out --- bin/git_stats | 2 +- lib/git_stats/git_data/activity.rb | 37 ++++++++---------------------- 2 files changed, 10 insertions(+), 29 deletions(-) diff --git a/bin/git_stats b/bin/git_stats index e434770de..36db0405e 100755 --- a/bin/git_stats +++ b/bin/git_stats @@ -10,6 +10,6 @@ require "git_stats/cli" begin cli = GitStats::CLI.new cli.start(*ARGV) -rescue => e +rescue ArgumentError => e puts e.message end \ No newline at end of file diff --git a/lib/git_stats/git_data/activity.rb b/lib/git_stats/git_data/activity.rb index 050c97876..1704400a2 100644 --- a/lib/git_stats/git_data/activity.rb +++ b/lib/git_stats/git_data/activity.rb @@ -2,39 +2,20 @@ module GitStats module GitData class Activity + attr_reader :by_hour, :by_wday, :by_wday_hour, :by_month, :by_year, :by_year_week + def initialize(commits) - commits.values.each do |commit| - add_commit(commit) - end - end + @by_hour = @by_wday = @by_month = @by_year = Hash.new(0) + @by_wday_hour = @by_year_week = Hash.new { |h, k| h[k] = Hash.new(0) } - def by_hour - @by_hour ||= Hash.new(0) - end - - def by_wday - @by_wday ||= Hash.new(0) - end - - def by_wday_hour - @by_wday_hour ||= Hash.new { |h, k| h[k] = Hash.new(0) } - end - - def by_month - @by_month ||= Hash.new(0) - end - - def by_year - @by_year ||= Hash.new(0) - end - - def by_year_week - @by_year_week ||= Hash.new { |h, k| h[k] = Hash.new(0) } + add_commits(commits) end private - def add_commit(commit) - add_commit_at(commit.date) + def add_commits(commits) + commits.values.each do |commit| + add_commit_at(commit.date) + end end def add_commit_at(date)