weekly_commits 1.0.0 → 1.0.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 032be9fd7bb56b8cd2f6480be35b329a60da4fb1
4
- data.tar.gz: 6a73cc53bbe888c084950d2ac06215cf33ddf750
3
+ metadata.gz: 0955dfe06bad6f30979c30a6661a34b82ed329fb
4
+ data.tar.gz: adf8ec863ffa1c29c0459797406f468f277a9af6
5
5
  SHA512:
6
- metadata.gz: b305fe4c67db86e642c70abbedfe1bd011b4ed9e4a13e06f2ee3c166bda86648b921026c8f279f4942d18f64761cc653be3947be90e433201736dc9fe6d81de7
7
- data.tar.gz: 61640142bca5fff7a0ceb520d60258799673efbe2611f7fb0101cf0d5b23079f712bf144439e8d257edb448b161ac7584f822ccc30135b54d41f6fee83acd0e5
6
+ metadata.gz: f032558c8483599a78b08bb0a1791cfbea39849699d6995910d481a65908c66eb3d921220fb4284f6b341b4977c8fdd61b07f5abd5568090b1c8ccfbb2c2b7d3
7
+ data.tar.gz: 5952f50f68669a6ff9a3c32f918660da1fd104ca6b486c5a94f9b4aa5ab2730f09124dca7625e96651a9712bd3c4f8e6753cb4738a0df6cd1f7df59348d7d201
data/README.md CHANGED
@@ -1,13 +1,13 @@
1
1
  # WeeklyCommits
2
2
 
3
- Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/weekly_commits`. To experiment with that code, run `bin/console` for an interactive prompt.
3
+ WeeklyCommits is a command line tool for getting a bird's eye view of your
4
+ commits on a branch for a specific week.
4
5
 
5
- TODO: Delete this and the text above, and describe your gem
6
+ It is particularly helpful for stand ups, filling up detailed time sheets and
7
+ for recap when starting up again after a long weekend.
6
8
 
7
9
  ## Installation
8
10
 
9
- Add this line to your application's Gemfile:
10
-
11
11
  ```ruby
12
12
  gem 'weekly_commits'
13
13
  ```
@@ -22,20 +22,76 @@ Or install it yourself as:
22
22
 
23
23
  ## Usage
24
24
 
25
- TODO: Write usage instructions here
25
+ For help type:
26
+
27
+ ```sh
28
+ wcomm help
29
+ # or
30
+ wcomm help weekly_commits
31
+ ```
32
+
33
+ Usage documentation from command-line:
34
+
35
+ ```
36
+ Usage:
37
+ wcomm
38
+
39
+ Options:
40
+ -w, [--week=N] # Relative week number. e.g. -w=1 for last week. 0 = current week.
41
+ # Default: 0
42
+ [--show-committer], [--no-show-committer] # Display committer with each commit message. e.g. Did stuff (Dorian Karter)
43
+ [--sort=SORT] # Show commits in ascending/descending order. Default: older commits on top, newer on bottom.
44
+ # Default: desc
45
+ # Possible values: asc, desc
46
+ ```
47
+
48
+ ### Example
49
+
50
+ First navigate to a repo and make sure you have the WeeklyCommits gem installed
51
+ for that version of ruby in that directory.
52
+
53
+ Show me this week's commits:
54
+
55
+ ```sh
56
+ wcomm
57
+ ```
58
+
59
+ Show me last weeks commits:
60
+
61
+ ```sh
62
+ wcomm -w=1
63
+ ```
64
+
65
+ Show me commits from two weeks ago including committer
66
+
67
+ ```sh
68
+ wcomm -w=2 --show-committer
69
+ ```
26
70
 
27
71
  ## Development
28
72
 
29
- After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
73
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run
74
+ `rake spec` to run the tests. You can also run `bin/console` for an interactive
75
+ prompt that will allow you to experiment.
76
+
77
+ To install this gem onto your local machine, run `bundle exec rake install`. To
78
+ release a new version, update the version number in `version.rb`, and then run
79
+ `bundle exec rake release`, which will create a git tag for the version, push
80
+ git commits and tags, and push the `.gem` file to
81
+ [rubygems.org](https://rubygems.org).
82
+
83
+ ## TODO
30
84
 
31
- To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
85
+ - [ ] Add support for multiple branches
32
86
 
33
87
  ## Contributing
34
88
 
35
- Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/weekly_commits.
89
+ Bug reports and pull requests are welcome on GitHub at
90
+ https://github.com/dkarter/weekly_commits.
36
91
 
37
92
 
38
93
  ## License
39
94
 
40
- The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
95
+ The gem is available as open source under the terms of the [MIT
96
+ License](http://opensource.org/licenses/MIT).
41
97
 
@@ -7,13 +7,27 @@ module WeeklyCommits
7
7
  package_name 'Weekly Commits'
8
8
  default_task :weekly_commits
9
9
 
10
- desc 'weekly_commits', 'Lists commits for a specified week'
10
+ desc 'weekly_commits', '[DEFAULT] Lists commits for a specified week'
11
11
  method_option :week, {
12
12
  type: :numeric,
13
13
  desc: 'Relative week number. e.g. -w=1 for last week. 0 = current week.',
14
14
  aliases: '-w',
15
- default: 0
15
+ default: 0,
16
16
  }
17
+
18
+ method_option :show_committer, {
19
+ type: :boolean,
20
+ desc: 'Display committer with each commit message. e.g. Did stuff (Dorian Karter)',
21
+ default: false,
22
+ }
23
+
24
+ method_option :sort, {
25
+ type: :string,
26
+ desc: 'Show commits in ascending/descending order. Default: older commits on top, newer on bottom.',
27
+ default: 'asc',
28
+ enum: ['asc','desc'],
29
+ }
30
+
17
31
  def weekly_commits
18
32
  relative_week = options[:week]
19
33
  beg_week = relative_week.week.ago.beginning_of_week
@@ -22,8 +36,11 @@ module WeeklyCommits
22
36
  date = beg_week + day_count.days
23
37
  week_title = date.strftime('%a, %e %b %Y')
24
38
  git_date_format = date.strftime('%Y-%m-%e')
39
+ committer = options[:show_committer] ? ' (%cn)' : ''
40
+
41
+ commits = `git --no-pager log --after='#{git_date_format} 00:00' --before='#{git_date_format} 23:59' --pretty=format:'%s#{committer}'`
25
42
 
26
- commits = `git --no-pager log --after='#{git_date_format} 00:00' --before='#{git_date_format} 23:59' --pretty=format:'%s'`
43
+ commits = commits.lines.reverse if options[:sort].downcase == 'asc'
27
44
 
28
45
  puts week_title.yellow
29
46
  puts commits
@@ -1,3 +1,3 @@
1
1
  module WeeklyCommits
2
- VERSION = "1.0.0"
2
+ VERSION = "1.0.1"
3
3
  end
@@ -21,6 +21,7 @@ Gem::Specification.new do |spec|
21
21
  spec.add_development_dependency 'bundler', "~> 1.11"
22
22
  spec.add_development_dependency 'rake', "~> 10.0"
23
23
  spec.add_development_dependency 'rspec', "~> 3.0"
24
+ spec.add_development_dependency 'pry'
24
25
 
25
26
  # runtime dependencies
26
27
  spec.add_runtime_dependency 'activesupport'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: weekly_commits
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dorian Karter
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: pry
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: activesupport
57
71
  requirement: !ruby/object:Gem::Requirement