changelog-rb 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 602243340e6c3344d89a4da97217bab961ebda21
4
- data.tar.gz: ec756a4544bbf0acb16d3df88e772cd89d127872
3
+ metadata.gz: c4fe9745c044a09676d9afd807291f41fdbdc615
4
+ data.tar.gz: '039689a6b3b8189a2e923c0339aaaf7589938784'
5
5
  SHA512:
6
- metadata.gz: b1d4dd3a25590a3133d8242c603d94bf98d8ed86b878750707ac0f714597ffadd3f50304288b5993362be36957e452a9f9f001a646933ab94945736d2e4e7553
7
- data.tar.gz: 74b16d04e3251ecc61dfd83fff16bc94c5d66e30288ff6309e14e1ec89b08b48cfee497fc0020f6a0ff5e39087c274c9e02f695d539c39f9410d5997d52702fc
6
+ metadata.gz: 81598ba10ac219d95e0429c057045c4e381295c757b3d48b665c08d31ed09560fb5873ba9dd4296f71eef760d763bbda255cd3da38d92278f3b31cb5eb36a2ed
7
+ data.tar.gz: 0dad477768fa74970a0d3860b13f7b1b6acdceec294cec8bd82d703de58b60d7c2699f67bc4d3b39d5ce2c8a7906c8fb6077a735cbd9882fc4d93ccf04846922
data/CHANGELOG.md CHANGED
@@ -2,6 +2,13 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [0.1.1] - 2017-09-18
6
+ ### Added
7
+ - ✨ Added show script (@pinglamb)
8
+
9
+ ### Changed
10
+ - ✨ Support date option for tag command (@pinglamb)
11
+
5
12
  ## [0.1.0] - 2017-09-18
6
13
  ### Added
7
14
  - Added something (@pinglamb)
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- changelog-rb (0.1.0)
4
+ changelog-rb (0.1.1)
5
5
  activesupport
6
6
  semantic (~> 1.6.0)
7
7
  thor (~> 0.20.0)
@@ -0,0 +1,4 @@
1
+ type: Added
2
+ title: >
3
+ ✨ Added show script
4
+ author: pinglamb
@@ -0,0 +1,4 @@
1
+ type: Changed
2
+ title: >
3
+ ✨ Support date option for tag command
4
+ author: pinglamb
@@ -0,0 +1 @@
1
+ date: 2017-09-18
data/lib/changelog-rb.rb CHANGED
@@ -13,4 +13,5 @@ require "changelog/setup"
13
13
  require "changelog/add"
14
14
  require "changelog/tag"
15
15
  require "changelog/untag"
16
+ require "changelog/show"
16
17
  require "changelog/print"
data/lib/changelog/cli.rb CHANGED
@@ -39,8 +39,13 @@ module Changelog
39
39
  end
40
40
 
41
41
  desc 'tag VERSION', 'Tag the unreleased changes to a version'
42
+ method_option :date,
43
+ type: :string,
44
+ desc: 'Date of release. Default: Today',
45
+ lazy_default: nil,
46
+ aliases: %w(-d)
42
47
  def tag(version)
43
- Changelog::Tag.new.go(version)
48
+ Changelog::Tag.new.go(version, options.symbolize_keys)
44
49
  end
45
50
 
46
51
  desc 'untag VERSION', 'Moved the changes from version folder to unreleased'
@@ -48,6 +53,11 @@ module Changelog
48
53
  Changelog::Untag.new.go(version)
49
54
  end
50
55
 
56
+ desc 'show VERSION', 'Print changes of VERSION'
57
+ def show(version)
58
+ Changelog::Show.new.go(version)
59
+ end
60
+
51
61
  desc 'print', 'Print ./changelog to CHANGELOG.md'
52
62
  def print
53
63
  Changelog::Print.new.go
@@ -0,0 +1,46 @@
1
+ require 'yaml'
2
+
3
+ module Changelog
4
+ module Helpers
5
+ module Changes
6
+ def version_header(folder)
7
+ if folder == "unreleased"
8
+ "## [Unreleased]\n"
9
+ else
10
+ meta = YAML.load_file(File.join(destination_root, "changelog/#{folder}/tag.yml"))
11
+ date = meta['date'].to_s
12
+ "## [#{folder}] - #{date}\n"
13
+ end
14
+ end
15
+
16
+ def read_changes(folder)
17
+ items = {}
18
+ changelog_files(folder).each do |file|
19
+ yaml = YAML.load_file(file)
20
+ items[yaml['type']] ||= []
21
+ items[yaml['type']] << "#{yaml['title'].strip} (@#{yaml['author']})"
22
+ end
23
+
24
+ sections = []
25
+ Changelog.natures.each.with_index do |nature, i|
26
+ if changes = items[nature].presence
27
+ lines = []
28
+ lines << "### #{nature}\n"
29
+ changes.each do |change|
30
+ lines << "- #{change}\n"
31
+ end
32
+ sections << lines.join
33
+ end
34
+ end
35
+
36
+ sections.join("\n")
37
+ end
38
+
39
+ def changelog_files(folder)
40
+ Dir[File.join(destination_root, "changelog/#{folder}/*.yml")] - [
41
+ File.join(destination_root, "changelog/#{folder}/tag.yml")
42
+ ]
43
+ end
44
+ end
45
+ end
46
+ end
@@ -1,23 +1,22 @@
1
1
  require 'thor'
2
2
  require 'yaml'
3
3
  require 'semantic'
4
+ require 'changelog/helpers/changes'
4
5
 
5
6
  module Changelog
6
7
  class Print < Thor
7
8
  include Thor::Actions
8
9
 
9
10
  no_commands do
11
+ include Changelog::Helpers::Changes
12
+
10
13
  def go
11
14
  remove_file 'CHANGELOG.md'
12
15
  add_file 'CHANGELOG.md'
13
16
 
14
- append_to_file 'CHANGELOG.md', "# Changelog\n\n", verbose: false
15
-
16
- shell.say_status :append, "changes in changelog/unreleased", :green unless shell.mute?
17
- append_to_file 'CHANGELOG.md', "## [Unreleased]\n", verbose: false
18
- print_changes 'unreleased'
17
+ append_to_file 'CHANGELOG.md', "# Changelog\n", verbose: false
19
18
 
20
- version_folders.each do |version|
19
+ %w[unreleased].concat(version_folders).each do |version|
21
20
  shell.say_status :append, "changes in changelog/#{version}", :green unless shell.mute?
22
21
  print_version_header version
23
22
  print_changes version
@@ -26,33 +25,11 @@ module Changelog
26
25
 
27
26
  def print_version_header(folder)
28
27
  append_to_file 'CHANGELOG.md', "\n", verbose: false, force: true
29
-
30
- meta = YAML.load_file(File.join(destination_root, "changelog/#{folder}/tag.yml"))
31
- date = meta['date'].to_s
32
- append_to_file 'CHANGELOG.md', "## [#{folder}] - #{date}\n", verbose: false
28
+ append_to_file 'CHANGELOG.md', version_header(folder), verbose: false
33
29
  end
34
30
 
35
31
  def print_changes(folder)
36
- items = {}
37
- changelog_files(folder).each do |file|
38
- yaml = YAML.load_file(file)
39
- items[yaml['type']] ||= []
40
- items[yaml['type']] << "#{yaml['title'].strip} (@#{yaml['author']})"
41
- end
42
-
43
- sections = []
44
- Changelog.natures.each.with_index do |nature, i|
45
- if changes = items[nature].presence
46
- lines = []
47
- lines << "### #{nature}\n"
48
- changes.each do |change|
49
- lines << "- #{change}\n"
50
- end
51
- sections << lines.join
52
- end
53
- end
54
-
55
- append_to_file 'CHANGELOG.md', sections.join("\n"), verbose: false, force: true
32
+ append_to_file 'CHANGELOG.md', read_changes(folder), verbose: false, force: true
56
33
  end
57
34
 
58
35
  def version_folders
@@ -60,12 +37,6 @@ module Changelog
60
37
  File.join(destination_root, "changelog/unreleased")
61
38
  ]).collect {|path| File.basename(path)}.sort_by {|version| Semantic::Version.new(version)}.reverse
62
39
  end
63
-
64
- def changelog_files(folder)
65
- Dir[File.join(destination_root, "changelog/#{folder}/*.yml")] - [
66
- File.join(destination_root, "changelog/#{folder}/tag.yml")
67
- ]
68
- end
69
40
  end
70
41
  end
71
42
  end
@@ -0,0 +1,22 @@
1
+ require 'thor'
2
+ require 'yaml'
3
+ require 'changelog/helpers/changes'
4
+
5
+ module Changelog
6
+ class Show < Thor
7
+ include Thor::Actions
8
+
9
+ no_commands do
10
+ include Changelog::Helpers::Changes
11
+
12
+ def go(version)
13
+ if File.exists?(File.join(destination_root, "changelog/#{version}"))
14
+ puts version_header(version)
15
+ puts read_changes(version)
16
+ else
17
+ say "changelog/#{version} not found"
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
data/lib/changelog/tag.rb CHANGED
@@ -9,9 +9,9 @@ module Changelog
9
9
  end
10
10
 
11
11
  no_commands do
12
- def go(version)
12
+ def go(version, date: nil)
13
13
  @version = version
14
- @date = Date.today.to_s
14
+ @date = date || Date.today.to_s
15
15
 
16
16
  empty_directory "changelog/#{@version}"
17
17
  template 'tag.yml', "changelog/#{@version}/tag.yml"
@@ -1,3 +1,3 @@
1
1
  module Changelog
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: changelog-rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - pinglamb
@@ -136,15 +136,20 @@ files:
136
136
  - changelog/0.1.0/make_print_supports_version_folders.yml
137
137
  - changelog/0.1.0/support_getting_title_from_git_commit.yml
138
138
  - changelog/0.1.0/tag.yml
139
+ - changelog/0.1.1/added_show_script.yml
140
+ - changelog/0.1.1/support_date_option_for_tag_command.yml
141
+ - changelog/0.1.1/tag.yml
139
142
  - changelog/unreleased/.gitkeep
140
143
  - exe/changelog
141
144
  - lib/changelog-rb.rb
142
145
  - lib/changelog/add.rb
143
146
  - lib/changelog/cli.rb
147
+ - lib/changelog/helpers/changes.rb
144
148
  - lib/changelog/helpers/git.rb
145
149
  - lib/changelog/helpers/shell.rb
146
150
  - lib/changelog/print.rb
147
151
  - lib/changelog/setup.rb
152
+ - lib/changelog/show.rb
148
153
  - lib/changelog/tag.rb
149
154
  - lib/changelog/untag.rb
150
155
  - lib/changelog/version.rb