pimpmychangelog 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,15 @@
1
+ # Changelog
2
+
3
+ ## Version 0.0.2
4
+
5
+ * CLI does not accept any options anymore
6
+ * Github user and projects are extracted from the origin remote fetch
7
+ url
8
+ * CHANGELOG.md is overwritten instead of printed out. #1
9
+
10
+
11
+ ## Version 0.0.1
12
+
13
+ * Initial version by @pcreux
14
+ * Usage: `pimpmychangelog gregbell activeadmin CHANGELOG.md`
15
+ This would output the pimped version of the changelog.
@@ -0,0 +1,32 @@
1
+ ## Pimp My Changelog
2
+
3
+ Add links to users and issues in your CHANGELOG.md.
4
+
5
+ ### Example:
6
+
7
+ > Add Travis-CI support. (@pcreux, #181)
8
+
9
+ becomes:
10
+
11
+ > Add Travis-CI support. ([@pcreux][], [#181][])
12
+ <!--- The following link definition list is generated by PimpMyChangelog --->
13
+ [#181]: https://github.com/gregbell/active_admin/issues/181
14
+ [@pcreux]: https://github.com/pcreux
15
+
16
+
17
+ ### Usage:
18
+
19
+ Install:
20
+
21
+ gem install pimpmychangelog
22
+
23
+ Go in your project directory and run:
24
+
25
+ pimpmychangelog
26
+ # => Your changelog is now pimped!
27
+
28
+ Notes:
29
+
30
+ * We assume the CHANGELOG file is `CHANGELOG.md`
31
+ * We assume origin points to the github repository that the issues
32
+ belong to.
@@ -2,4 +2,4 @@
2
2
 
3
3
  require File.expand_path('../../lib/pimpmychangelog.rb', __FILE__)
4
4
 
5
- PimpMyChangelog::CLI.run!(ARGV)
5
+ PimpMyChangelog::CLI.run!
@@ -1,3 +1,3 @@
1
- %w(pimper parser cli version).each do |file|
1
+ %w(pimper parser git_remote cli version).each do |file|
2
2
  require File.expand_path("../pimpmychangelog/#{file}.rb", __FILE__)
3
3
  end
@@ -1,24 +1,43 @@
1
1
  module PimpMyChangelog
2
2
  class CLI
3
- def self.run!(args)
4
- unless args.size == 3
5
- puts "Usage: pimpmychangelog github_user github_project CHANGELOG.md"
6
- exit 1
7
- end
3
+ def self.run!
4
+ new.run
5
+ end
8
6
 
9
- new(*args).run
7
+ def initialize
8
+ @git_remote = GitRemote.new
10
9
  end
11
10
 
12
- attr_reader :user, :project, :changelog_path
11
+ def run
12
+ changelog = read_changelog
13
+ puts changelog
14
+ puts ""
15
+ puts "In case something goes wrong we printed out your current #{changelog_path} above"
13
16
 
14
- def initialize(user, project, changelog_path)
15
- @user = user
16
- @project = project
17
- @changelog_path = changelog_path
17
+ write_changelog(Pimper.new(user, project, changelog).better_changelog)
18
+ puts "Your changelog is now pimped!"
18
19
  end
19
20
 
20
- def run
21
- puts Pimper.new(user, project, File.read(changelog_path)).better_changelog
21
+ private
22
+
23
+ def user
24
+ @git_remote.user
25
+ end
26
+
27
+ def project
28
+ @git_remote.project
29
+ end
30
+
31
+ def changelog_path
32
+ "CHANGELOG.md"
33
+ end
34
+
35
+ def read_changelog
36
+ File.read(changelog_path)
37
+ end
38
+
39
+ def write_changelog(content)
40
+ File.open(changelog_path, 'w') { |f| f.write content }
22
41
  end
23
42
  end
24
43
  end
@@ -0,0 +1,22 @@
1
+ class GitRemote
2
+ def initialize
3
+ match = fetch_url.match(/(\w+)\/(\w+)/)
4
+ @user = match[1]
5
+ @project = match[2]
6
+ unless @user && @project
7
+ raise "Can't extract github user and project from origin remote"
8
+ end
9
+ end
10
+
11
+ attr_reader :user, :project
12
+
13
+ private
14
+
15
+ def fetch_url
16
+ @fetch_url ||= run_command.split(' ').last
17
+ end
18
+
19
+ def run_command
20
+ `git remote show origin | grep "Fetch URL"`
21
+ end
22
+ end
@@ -1,3 +1,3 @@
1
1
  module PimpMyChangelog
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -0,0 +1,5 @@
1
+ require 'spec_helper'
2
+
3
+ describe CLI ,"#run"do
4
+
5
+ end
@@ -0,0 +1,8 @@
1
+ require 'spec_helper'
2
+
3
+ describe GitRemote do
4
+ context "when working on pcreux/pimpmychangelog" do
5
+ its(:user) { should == 'pcreux' }
6
+ its(:project) { should == 'pimpmychangelog' }
7
+ end
8
+ end
@@ -67,7 +67,7 @@ You know what? @pcreux closed issue #300!
67
67
  You know what? [@pcreux][] closed issue [#123][].
68
68
  And this is my link, don't touch it: [Adequate][http://adequatehq.com]
69
69
 
70
- <!--- The following link definitions are generated by PimpMyChangelog --->
70
+ <!--- The following link definition list is generated by PimpMyChangelog --->
71
71
  [#123]: https://github.com/gregbell/activeadmin/issues/123
72
72
  [@pcreux]: https://github.com/pcreux
73
73
  EOS
@@ -84,7 +84,7 @@ You know what? [@pcreux][] closed issue [#300][]!
84
84
  You know what? [@pcreux][] closed issue [#123][].
85
85
  And this is my link, don't touch it: [Adequate][http://adequatehq.com]
86
86
 
87
- <!--- The following link definitions are generated by PimpMyChangelog --->
87
+ <!--- The following link definition list is generated by PimpMyChangelog --->
88
88
  [#123]: https://github.com/gregbell/activeadmin/issues/123
89
89
  [#300]: https://github.com/gregbell/activeadmin/issues/300
90
90
  [@pcreux]: https://github.com/pcreux
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pimpmychangelog
3
3
  version: !ruby/object:Gem::Version
4
- hash: 29
5
- prerelease: false
4
+ hash: 27
5
+ prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 1
10
- version: 0.0.1
9
+ - 2
10
+ version: 0.0.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Philippe Creux
@@ -15,8 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-08-25 00:00:00 -07:00
19
- default_executable: pimpmychangelog
18
+ date: 2011-12-12 00:00:00 Z
20
19
  dependencies:
21
20
  - !ruby/object:Gem::Dependency
22
21
  name: rspec
@@ -57,20 +56,24 @@ extra_rdoc_files: []
57
56
 
58
57
  files:
59
58
  - .gitignore
59
+ - CHANGELOG.md
60
60
  - Gemfile
61
61
  - Guardfile
62
+ - README.md
62
63
  - Rakefile
63
64
  - bin/pimpmychangelog
64
65
  - lib/pimpmychangelog.rb
65
66
  - lib/pimpmychangelog/cli.rb
67
+ - lib/pimpmychangelog/git_remote.rb
66
68
  - lib/pimpmychangelog/parser.rb
67
69
  - lib/pimpmychangelog/pimper.rb
68
70
  - lib/pimpmychangelog/version.rb
69
71
  - pimpmychangelog.gemspec
72
+ - spec/cli_spec.rb
73
+ - spec/git_remote_spec.rb
70
74
  - spec/parser_spec.rb
71
75
  - spec/pimper_spec.rb
72
76
  - spec/spec_helper.rb
73
- has_rdoc: true
74
77
  homepage: https://github.com/pcreux/pimpmychangelog
75
78
  licenses: []
76
79
 
@@ -100,7 +103,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
100
103
  requirements: []
101
104
 
102
105
  rubyforge_project:
103
- rubygems_version: 1.3.7
106
+ rubygems_version: 1.8.11
104
107
  signing_key:
105
108
  specification_version: 3
106
109
  summary: Pimp your CHANGELOG.md