changelog-rb 0.2.2 → 0.3.0

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
- SHA1:
3
- metadata.gz: ddf2750e177944dc94670ae72327331ca39c907a
4
- data.tar.gz: 65202dc3bb69293f50b5c48760dffb6fbe08ec4c
2
+ SHA256:
3
+ metadata.gz: 62e004d1f0a039729f9d2efae1bb5fa7f58a59878eb9873e1fdef18131334f20
4
+ data.tar.gz: 0a7dd6df4a42fab585480170682ee5f85d856164da227ac98e026eded944a6dc
5
5
  SHA512:
6
- metadata.gz: 4d99b2de63256ff545f762328faf6efeb122b3793d0f6f0dcbaf52739d95b082e3fdb5b918b6d5793dda0e06c71697d44ddf5041025ae35fdc20a121aa41360f
7
- data.tar.gz: 80b17e77f011fa35016bc526feba5a2158c0f804bc35da60ba169701c3d53845eba4099fee444515b82f0294d93e134374533919a8d4acc47485d98d32881703
6
+ metadata.gz: 3a00d73bc01b47ccc875f399a190b25ee760ff274c99ecf7caf58d5b31ed3f61ddfdbe0d167d41eadb45b790871db079af753f7ae0b53a1a04b13975f597e5bc
7
+ data.tar.gz: f9882a330e77f57b472fcdbdebbe5804190d76ead05822c1bfadae269632a1472b79546f42128957e4e7e9a771af2a7ef50f14dcacdb6a3fc2740a3b8ed9fcd8
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- changelog-rb (0.2.1)
4
+ changelog-rb (0.2.2)
5
5
  activesupport
6
6
  semantic
7
7
  thor
@@ -9,45 +9,45 @@ PATH
9
9
  GEM
10
10
  remote: https://rubygems.org/
11
11
  specs:
12
- activesupport (5.1.4)
12
+ activesupport (7.0.8)
13
13
  concurrent-ruby (~> 1.0, >= 1.0.2)
14
- i18n (~> 0.7)
15
- minitest (~> 5.1)
16
- tzinfo (~> 1.1)
17
- concurrent-ruby (1.0.5)
18
- diff-lcs (1.3)
19
- fakefs (0.11.2)
20
- i18n (0.8.6)
21
- minitest (5.10.3)
22
- rake (10.5.0)
23
- rspec (3.6.0)
24
- rspec-core (~> 3.6.0)
25
- rspec-expectations (~> 3.6.0)
26
- rspec-mocks (~> 3.6.0)
27
- rspec-core (3.6.0)
28
- rspec-support (~> 3.6.0)
29
- rspec-expectations (3.6.0)
14
+ i18n (>= 1.6, < 2)
15
+ minitest (>= 5.1)
16
+ tzinfo (~> 2.0)
17
+ concurrent-ruby (1.2.2)
18
+ diff-lcs (1.5.0)
19
+ fakefs (2.5.0)
20
+ i18n (1.14.1)
21
+ concurrent-ruby (~> 1.0)
22
+ minitest (5.20.0)
23
+ rake (13.0.6)
24
+ rspec (3.12.0)
25
+ rspec-core (~> 3.12.0)
26
+ rspec-expectations (~> 3.12.0)
27
+ rspec-mocks (~> 3.12.0)
28
+ rspec-core (3.12.2)
29
+ rspec-support (~> 3.12.0)
30
+ rspec-expectations (3.12.3)
30
31
  diff-lcs (>= 1.2.0, < 2.0)
31
- rspec-support (~> 3.6.0)
32
- rspec-mocks (3.6.0)
32
+ rspec-support (~> 3.12.0)
33
+ rspec-mocks (3.12.6)
33
34
  diff-lcs (>= 1.2.0, < 2.0)
34
- rspec-support (~> 3.6.0)
35
- rspec-support (3.6.0)
36
- semantic (1.6.0)
37
- thor (0.20.0)
38
- thread_safe (0.3.6)
39
- tzinfo (1.2.3)
40
- thread_safe (~> 0.1)
35
+ rspec-support (~> 3.12.0)
36
+ rspec-support (3.12.1)
37
+ semantic (1.6.1)
38
+ thor (1.2.2)
39
+ tzinfo (2.0.6)
40
+ concurrent-ruby (~> 1.0)
41
41
 
42
42
  PLATFORMS
43
43
  ruby
44
44
 
45
45
  DEPENDENCIES
46
- bundler (~> 1.16.a)
46
+ bundler (~> 2)
47
47
  changelog-rb!
48
- fakefs (~> 0.11.2)
49
- rake (~> 10.0)
50
- rspec (~> 3.0)
48
+ fakefs (~> 2.5)
49
+ rake (~> 13.0)
50
+ rspec (~> 3.12)
51
51
 
52
52
  BUNDLED WITH
53
- 1.16.0.pre.2
53
+ 2.4.19
@@ -0,0 +1,4 @@
1
+ type: Added
2
+ title: >
3
+ ✨ default show latest version
4
+ author: yachi
@@ -0,0 +1 @@
1
+ date: 2023-09-20
@@ -0,0 +1,4 @@
1
+ type: Changed
2
+ title: >
3
+ Upgrade to Ruby 3.2.2
4
+ author: pinglamb
data/changelog-rb.gemspec CHANGED
@@ -1,31 +1,31 @@
1
-
2
- lib = File.expand_path("../lib", __FILE__)
1
+ lib = File.expand_path('../lib', __FILE__)
3
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require "changelog/version"
3
+ require 'changelog/version'
5
4
 
6
5
  Gem::Specification.new do |spec|
7
- spec.name = "changelog-rb"
8
- spec.version = Changelog::VERSION
9
- spec.authors = ["pinglamb"]
10
- spec.email = ["pinglambs@gmail.com"]
6
+ spec.name = 'changelog-rb'
7
+ spec.version = Changelog::VERSION
8
+ spec.authors = ['pinglamb']
9
+ spec.email = ['pinglambs@gmail.com']
11
10
 
12
- spec.summary = %q{Make developers happy with http://keepachangelog.com/.}
13
- spec.homepage = "https://github.com/pinglamb/changelog-rb"
14
- spec.license = "MIT"
11
+ spec.summary = 'Make developers happy with http://keepachangelog.com/.'
12
+ spec.homepage = 'https://github.com/pinglamb/changelog-rb'
13
+ spec.license = 'MIT'
15
14
 
16
- spec.files = `git ls-files -z`.split("\x0").reject do |f|
17
- f.match(%r{^(test|spec|features)/})
18
- end
19
- spec.bindir = "exe"
20
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
21
- spec.require_paths = ["lib"]
15
+ spec.files =
16
+ `git ls-files -z`
17
+ .split("\x0")
18
+ .reject { |f| f.match(%r{^(test|spec|features)/}) }
19
+ spec.bindir = 'exe'
20
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
21
+ spec.require_paths = ['lib']
22
22
 
23
- spec.add_runtime_dependency "thor"
24
- spec.add_runtime_dependency "activesupport"
25
- spec.add_runtime_dependency "semantic"
23
+ spec.add_runtime_dependency 'thor'
24
+ spec.add_runtime_dependency 'activesupport'
25
+ spec.add_runtime_dependency 'semantic'
26
26
 
27
- spec.add_development_dependency "bundler", "~> 1.16.a"
28
- spec.add_development_dependency "rake", "~> 10.0"
29
- spec.add_development_dependency "rspec", "~> 3.0"
30
- spec.add_development_dependency "fakefs", "~> 0.11.2"
27
+ spec.add_development_dependency 'bundler', '~> 2'
28
+ spec.add_development_dependency 'rake', '~> 13.0'
29
+ spec.add_development_dependency 'rspec', '~> 3.12'
30
+ spec.add_development_dependency 'fakefs', '~> 2.5'
31
31
  end
data/lib/changelog/add.rb CHANGED
@@ -12,24 +12,39 @@ module Changelog
12
12
 
13
13
  no_commands do
14
14
  def go(title, nature: '', author: '', git: nil)
15
- @title = if git.nil?
16
- title
17
- else
18
- git = git.presence || 'HEAD'
19
- Changelog::Helpers::Git.comment(git)
20
- end
15
+ @title =
16
+ if git.nil?
17
+ title
18
+ else
19
+ git = git.presence || 'HEAD'
20
+ Changelog::Helpers::Git.comment(git)
21
+ end
21
22
  @title = @title.gsub(/:\w+:/, '')
22
23
  @nature = nature.presence || extract_nature_from_title(@title)
23
24
  @author = author.presence || Changelog::Helpers::Shell.system_user
24
25
 
25
26
  if @title.blank?
26
- return say("Error: title is blank\nchangelog add TITLE\nchangelog add -g")
27
+ return(
28
+ say("Error: title is blank\nchangelog add TITLE\nchangelog add -g")
29
+ )
27
30
  end
28
31
  if @nature.blank?
29
- return say("Error: nature is blank\nchangelog add TITLE -t [#{Changelog.natures.join('|')}]")
32
+ return(
33
+ say(
34
+ "Error: nature is blank\nchangelog add TITLE -t [#{
35
+ Changelog.natures.join('|')
36
+ }]"
37
+ )
38
+ )
30
39
  end
31
40
  unless @nature.in?(Changelog.natures)
32
- return say("Error: nature is invalid\nchangelog add TITLE -t [#{Changelog.natures.join('|')}]")
41
+ return(
42
+ say(
43
+ "Error: nature is invalid\nchangelog add TITLE -t [#{
44
+ Changelog.natures.join('|')
45
+ }]"
46
+ )
47
+ )
33
48
  end
34
49
  if @author.blank?
35
50
  return say("Error: author is blank\nchangelog add TITLE -u [author]")
@@ -37,7 +52,9 @@ module Changelog
37
52
 
38
53
  filename = @title.parameterize.underscore
39
54
 
40
- empty_directory 'changelog/unreleased' unless File.exists?('changelog/unreleased')
55
+ unless File.exist?('changelog/unreleased')
56
+ empty_directory 'changelog/unreleased'
57
+ end
41
58
  template 'item.yml', "changelog/unreleased/#{filename}.yml"
42
59
 
43
60
  true
@@ -52,9 +69,7 @@ module Changelog
52
69
  return word if word.blank?
53
70
 
54
71
  Changelog.dictionary.each do |nature, words|
55
- if words.include?(word.downcase)
56
- return nature
57
- end
72
+ return nature if words.include?(word.downcase)
58
73
  end
59
74
 
60
75
  nil
@@ -5,21 +5,21 @@ module Changelog
5
5
  module Helpers
6
6
  module Changes
7
7
  def version_header(folder)
8
- if folder == "unreleased"
8
+ if folder == 'unreleased'
9
9
  "## [#{version_text(folder)}]\n"
10
10
  else
11
- meta = YAML.load_file(File.join(destination_root, "changelog/#{folder}/tag.yml"))
11
+ meta =
12
+ YAML.load_file(
13
+ File.join(destination_root, "changelog/#{folder}/tag.yml"),
14
+ permitted_classes: [Date]
15
+ )
12
16
  date = meta['date'].to_s
13
17
  "## [#{version_text(folder)}] - #{date}\n"
14
18
  end
15
19
  end
16
20
 
17
21
  def version_text(folder)
18
- if folder == 'unreleased'
19
- 'Unreleased'
20
- else
21
- folder
22
- end
22
+ folder == 'unreleased' ? 'Unreleased' : folder
23
23
  end
24
24
 
25
25
  def version_sha(folder)
@@ -33,31 +33,51 @@ module Changelog
33
33
  def read_changes(folder)
34
34
  items = {}
35
35
  changelog_files(folder).each do |file|
36
- yaml = YAML.load_file(file)
36
+ yaml = YAML.load_file(file, permitted_classes: [Date])
37
37
  items[yaml['type']] ||= []
38
38
  items[yaml['type']] << "#{yaml['title'].strip} (@#{yaml['author']})"
39
39
  end
40
40
 
41
41
  sections = []
42
- Changelog.natures.each.with_index do |nature, i|
43
- if changes = items[nature].presence
44
- lines = []
45
- lines << "### #{nature}\n"
46
- changes.each do |change|
47
- lines << "- #{change}\n"
42
+ Changelog
43
+ .natures
44
+ .each
45
+ .with_index do |nature, i|
46
+ if changes = items[nature].presence
47
+ lines = []
48
+ lines << "### #{nature}\n"
49
+ changes.each { |change| lines << "- #{change}\n" }
50
+ sections << lines.join
48
51
  end
49
- sections << lines.join
50
52
  end
51
- end
52
53
 
53
54
  sections.join("\n")
54
55
  end
55
56
 
56
57
  def changelog_files(folder)
57
- Dir[File.join(destination_root, "changelog/#{folder}/*.yml")] - [
58
+ Dir[File.join(destination_root, "changelog/#{folder}/*.yml")]
59
+ .sort_by { |path| File.basename(path) } - [
58
60
  File.join(destination_root, "changelog/#{folder}/tag.yml")
59
61
  ]
60
62
  end
63
+
64
+ def version_folders
65
+ (
66
+ Dir[File.join(destination_root, 'changelog/*')] - [
67
+ File.join(destination_root, 'changelog/unreleased')
68
+ ]
69
+ )
70
+ .collect { |path| File.basename(path) }
71
+ .sort_by do |version|
72
+ if version.match Semantic::Version::SemVerRegexp
73
+ Semantic::Version.new(version)
74
+ elsif version =~ /\A(0|[1-9]\d*)\.(0|[1-9]\d*)\Z/
75
+ # Example: 0.3, 1.5, convert it to 0.3.0, 1.5.0
76
+ Semantic::Version.new("#{version}.0")
77
+ end
78
+ end
79
+ .reverse
80
+ end
61
81
  end
62
82
  end
63
83
  end
@@ -9,12 +9,25 @@ module Changelog
9
9
  no_commands do
10
10
  include Changelog::Helpers::Changes
11
11
 
12
- def go(version)
13
- if File.exists?(File.join(destination_root, "changelog/#{version}"))
12
+ def go(version = nil)
13
+ versions =
14
+ if version
15
+ versions = [version]
16
+ else
17
+ %w[unreleased].push(version_folders.first)
18
+ end
19
+
20
+ versions.each { |version| print_version(version) }
21
+ end
22
+
23
+ private
24
+
25
+ def print_version(version)
26
+ if File.exist?(File.join(destination_root, "changelog/#{version}"))
14
27
  puts version_header(version)
15
28
  puts read_changes(version)
16
29
  else
17
- say "changelog/#{version} not found"
30
+ puts "changelog/#{version} not found"
18
31
  end
19
32
  end
20
33
  end
@@ -1,3 +1,3 @@
1
1
  module Changelog
2
- VERSION = "0.2.2"
2
+ VERSION = '0.3.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: changelog-rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - pinglamb
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-11-03 00:00:00.000000000 Z
11
+ date: 2023-09-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -58,57 +58,57 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 1.16.a
61
+ version: '2'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 1.16.a
68
+ version: '2'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rake
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '10.0'
75
+ version: '13.0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '10.0'
82
+ version: '13.0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: rspec
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '3.0'
89
+ version: '3.12'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '3.0'
96
+ version: '3.12'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: fakefs
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: 0.11.2
103
+ version: '2.5'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: 0.11.2
111
- description:
110
+ version: '2.5'
111
+ description:
112
112
  email:
113
113
  - pinglambs@gmail.com
114
114
  executables:
@@ -150,6 +150,9 @@ files:
150
150
  - changelog/0.2.1/tag.yml
151
151
  - changelog/0.2.2/tag.yml
152
152
  - changelog/0.2.2/updated_print_to_handle_non_2_numbers_version_tag_e_g_0_3_1_5.yml
153
+ - changelog/0.3.0/default_show_latest_version.yml
154
+ - changelog/0.3.0/tag.yml
155
+ - changelog/0.3.0/upgrade_to_ruby_3_2_2.yml
153
156
  - changelog/unreleased/.gitkeep
154
157
  - exe/changelog
155
158
  - lib/changelog-rb.rb
@@ -170,7 +173,7 @@ homepage: https://github.com/pinglamb/changelog-rb
170
173
  licenses:
171
174
  - MIT
172
175
  metadata: {}
173
- post_install_message:
176
+ post_install_message:
174
177
  rdoc_options: []
175
178
  require_paths:
176
179
  - lib
@@ -185,9 +188,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
185
188
  - !ruby/object:Gem::Version
186
189
  version: '0'
187
190
  requirements: []
188
- rubyforge_project:
189
- rubygems_version: 2.6.11
190
- signing_key:
191
+ rubygems_version: 3.4.19
192
+ signing_key:
191
193
  specification_version: 4
192
194
  summary: Make developers happy with http://keepachangelog.com/.
193
195
  test_files: []