parse_a_changelog 1.0.2 → 1.1.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
2
  SHA256:
3
- metadata.gz: 386dfd71c49f61ffdd42469141d5a687d4facdd7e2322303a3dd34a92a3b028b
4
- data.tar.gz: d2799e8f10212c91a043e96360ae7597c996c4c7ae4cfee125bd0a9d21227cd8
3
+ metadata.gz: e045590cfc9f23d38e8f2defb7eef9e0922d03abb4912a8b7b89f241e71e1163
4
+ data.tar.gz: 22fb2fbc1e1a1cdee66307a2808b83ca1469028d9bae4f94e86f260f6169e1f5
5
5
  SHA512:
6
- metadata.gz: c88acee63ea012d034a5e32fa0dea5dd91da06b99a67e69720df013f8e7f565904c02ff754542b6bcb83f8a9558bf4c1ec882221951bb1ff2915f8144a7b7e6c
7
- data.tar.gz: e0272cdd7d0a62cc0f04447641fd7531b66facaaf411475cd35285f549f82ff193a1f826cb541910b636fc9155d60fc7e07c5383b5e2afbd3478f1e78a975da3
6
+ metadata.gz: 4c7f832c309f8ce46d459ba44016213b89ecd5465e6a6395f8b8fe2142deae05da2894a133fead184b0fc9d555eba54cc6251c211c267dfe8e1feff98496aa44
7
+ data.tar.gz: 3dd90696a9fd42f3e05ec0d3c3f2faed89dc0fb50089382cd144f3772288ad6ef3272da5a31ed440ef38fc323582b0a73cd20dce1b0a29b3082bdf1c1259c713
@@ -6,6 +6,11 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [1.1.0] - 2020-11-12
10
+ ### Added
11
+ - Allow for metadata section in version string.
12
+ [cyberark/parse-a-changelog#34](https://github.com/cyberark/parse-a-changelog/issues/34)
13
+
9
14
  ## [1.0.2] - 2020-08-26
10
15
  ### Fixed
11
16
  - Added support for semver pre-releases.
@@ -67,7 +72,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
67
72
  - Open source license and contributing information
68
73
  - Change log and versioning information
69
74
 
70
- [Unreleased]: https://github.com/cyberark/parse-a-changelog/compare/v1.0.2...HEAD
75
+ [Unreleased]: https://github.com/cyberark/parse-a-changelog/compare/v1.1.0...HEAD
76
+ [1.1.0]: https://github.com/cyberark/parse-a-changelog/compare/v1.0.2...v1.1.0
71
77
  [1.0.2]: https://github.com/cyberark/parse-a-changelog/compare/v1.0.1...v1.0.2
72
78
  [1.0.1]: https://github.com/cyberark/parse-a-changelog/compare/v1.0.0...v1.0.1
73
79
  [1.0.0]: https://github.com/cyberark/parse-a-changelog/compare/v0.2.3...v1.0.0
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.2
1
+ 1.1.0
@@ -4,20 +4,20 @@ grammar KeepAChangelog
4
4
  end
5
5
 
6
6
  rule changelog_header
7
- '# Changelog' "\n"
8
- 'All notable changes to this project will be documented in this file.' "\n"
9
- "\n"
10
- 'The format is based on [Keep a Changelog](http' 's'? '://keepachangelog.com/en/1.0.0/)' "\n"
11
- 'and this project adheres to [Semantic Versioning](http' 's'? '://semver.org/spec/v2.0.0.html).' "\n"
12
- "\n"
7
+ '# Changelog' new_line
8
+ 'All notable changes to this project will be documented in this file.' new_line
9
+ new_line
10
+ 'The format is based on [Keep a Changelog](http' 's'? '://keepachangelog.com/en/1.0.0/)' new_line
11
+ 'and this project adheres to [Semantic Versioning](http' 's'? '://semver.org/spec/v2.0.0.html).' new_line
12
+ new_line
13
13
  end
14
14
 
15
15
  rule unreleased_section
16
- unreleased_header change_section? ("\n" change_section)*
16
+ unreleased_header change_section? (new_line change_section)*
17
17
  end
18
18
 
19
19
  rule unreleased_header
20
- '## ' '['? 'Unreleased' ']'? "\n"
20
+ '## ' '['? 'Unreleased' ']'? new_line
21
21
  end
22
22
 
23
23
  rule change_section
@@ -25,11 +25,11 @@ grammar KeepAChangelog
25
25
  end
26
26
 
27
27
  rule change_header
28
- '### ' ('Added' / 'Changed' / 'Deprecated' / 'Removed' / 'Fixed' / 'Security') "\n"
28
+ '### ' ('Added' / 'Changed' / 'Deprecated' / 'Removed' / 'Fixed' / 'Security') new_line
29
29
  end
30
30
 
31
31
  rule change
32
- ('- ' / ' ') (!"\n" .)+ "\n"?
32
+ ('- ' / ' ') (!new_line .)+ new_line?
33
33
  end
34
34
 
35
35
  rule releases_section
@@ -37,22 +37,26 @@ grammar KeepAChangelog
37
37
  end
38
38
 
39
39
  rule release
40
- "\n" release_header change_section? ("\n" change_section)*
40
+ new_line release_header change_section? (new_line change_section)*
41
41
  end
42
42
 
43
43
  rule release_header
44
- '## ' '['? release_version ']'? ' - ' release_date "\n"
44
+ '## ' '['? release_version ']'? ' - ' release_date new_line
45
45
  end
46
46
 
47
47
  rule release_version
48
- [0-9]+ '.' [0-9]+ '.' [0-9]+ pre_release_version
48
+ [0-9]+ '.' [0-9]+ '.' [0-9]+ pre_release_version metadata
49
49
  end
50
50
 
51
51
  rule pre_release_version
52
- ( '-' [0-9A-Za-z-]+ pre_release_group* ) / ''
52
+ ( '-' [0-9A-Za-z-]+ dot_separated_group* ) / ''
53
+ end
54
+
55
+ rule metadata
56
+ ( '+' [0-9A-Za-z-]+ dot_separated_group* ) / ''
53
57
  end
54
58
 
55
- rule pre_release_group
59
+ rule dot_separated_group
56
60
  '.' [0-9A-Za-z-]+
57
61
  end
58
62
 
@@ -61,19 +65,19 @@ grammar KeepAChangelog
61
65
  end
62
66
 
63
67
  rule diff_section
64
- "\n" unreleased_diff release_diff* initial_release?
68
+ new_line unreleased_diff release_diff* initial_release?
65
69
  end
66
70
 
67
71
  rule unreleased_diff
68
- '[Unreleased]: ' release_url "\n"
72
+ '[Unreleased]: ' release_url new_line
69
73
  end
70
74
 
71
75
  rule initial_release
72
- '[' release_version ']: ' 'https://github.com/' (!'/' .)+ '/' (!'/' .)+ '/releases/tag/v' release_version "\n"
76
+ '[' release_version ']: ' 'https://github.com/' (!'/' .)+ '/' (!'/' .)+ '/releases/tag/v' release_version new_line
73
77
  end
74
78
 
75
79
  rule release_diff
76
- '[' release_version ']: ' release_url "\n"
80
+ '[' release_version ']: ' release_url new_line
77
81
  end
78
82
 
79
83
  rule release_url
@@ -83,4 +87,8 @@ grammar KeepAChangelog
83
87
  rule diff_version
84
88
  'HEAD' / ( 'v' release_version )
85
89
  end
90
+
91
+ rule new_line
92
+ "\n"
93
+ end
86
94
  end
@@ -10,15 +10,17 @@ module ParseAChangelog
10
10
  parser = KeepAChangelogParser.new
11
11
  result = parser.parse(file)
12
12
 
13
- if !result
14
- raise ParseError.new(failure_message(parser))
13
+ unless result
14
+ raise parser_error(
15
+ parser.failure_line, parser.failure_column, parser.failure_reason
16
+ )
15
17
  end
16
-
18
+
17
19
  result
18
20
  end
19
21
 
20
- def failure_message(parser)
21
- parser.failure_reason.split(' after ')[0]
22
+ def parser_error(line, column, reason)
23
+ ParseError.new("line #{line}, column #{column}: #{reason}")
22
24
  end
23
25
  end
24
26
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: parse_a_changelog
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Tuttle
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-08-26 00:00:00.000000000 Z
11
+ date: 2020-11-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: treetop
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: 0.4.1
55
+ - !ruby/object:Gem::Dependency
56
+ name: pry-byebug
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 3.9.0
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 3.9.0
55
69
  description: Uses a grammar describing the keep-a-changelog format to attempt to parse
56
70
  a given file.
57
71
  email: jtuttle.develops@gmail.com