changelog-rb 0.2.2 → 0.3.0

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
- 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: []