changelog-rb 0.1.0 → 0.1.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: 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