spandx 0.18.0 → 0.18.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
  SHA256:
3
- metadata.gz: d25ff66ba00edb25cf87b9d9af71ed9433bf084a819a80f86676714754359b34
4
- data.tar.gz: 59e6783d2cba9287e0a65836aeae6705434fc0c9ccdfb093763d83b23d673207
3
+ metadata.gz: bb37d5c085e6c24f08f563a34abe6395448e63a0f8a7571cd16ee7353fcf0e86
4
+ data.tar.gz: 8cb0c804cf63410200d1a8d7b28e7ba7ec1cf57e180d1e66e63664f3daf2e4b8
5
5
  SHA512:
6
- metadata.gz: c75d55cc57a24d00912a98d0a339b22f21e04fb0c84459ce9b769b900cce83f5877557cbe70e2cdff522d1869ba4d89688b9e9d67913719247cc53897216cb01
7
- data.tar.gz: 770105bb92091a740afc3d886194712eb54908718af73e2769acfd512afe553d3f00de0e1ada81930b3d5c09a0a6053dfcc3cd8c9f48ecdb76673e1534ad9fff
6
+ metadata.gz: '0815ee42c9a013e2d4979d662166ca44d898d513b64250635ab36e8c65ab55d2eb1d7683b7cd1dcf4c2d8bc365d55433aba88713b3d4e2613c47dc62a7b53ba7'
7
+ data.tar.gz: 1dd8fa583d48f9007162b2eda18e07b0e58e906791c06491dd1d43dece6304c6831b279a4840761e8a370c6aaf6d7304e16eb2baa2a9f80b627bdffbf0ae2632
data/CHANGELOG.md CHANGED
@@ -1,4 +1,4 @@
1
- Version 0.18.0
1
+ Version 0.18.1
2
2
 
3
3
  # Changelog
4
4
 
@@ -9,6 +9,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
9
9
 
10
10
  ## [Unreleased]
11
11
 
12
+ ## [0.18.1] - 2021-06-02
13
+ ### Fixed
14
+ - Parse `.terraform.lock.hcl` files with multiple providers.
15
+
12
16
  ## [0.18.0] - 2021-05-10
13
17
  ### Added
14
18
  - Add support for parsing `.terraform.lock.hcl` files.
@@ -228,7 +232,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
228
232
  ### Added
229
233
  - Provide ruby API to the latest SPDX catalogue.
230
234
 
231
- [Unreleased]: https://github.com/spandx/spandx/compare/v0.18.0...HEAD
235
+ [Unreleased]: https://github.com/spandx/spandx/compare/v0.18.1...HEAD
236
+ [0.18.1]: https://github.com/spandx/spandx/compare/v0.18.0...v0.18.1
232
237
  [0.18.0]: https://github.com/spandx/spandx/compare/v0.17.0...v0.18.0
233
238
  [0.17.0]: https://github.com/spandx/spandx/compare/v0.16.1...v0.17.0
234
239
  [0.16.1]: https://github.com/spandx/spandx/compare/v0.16.0...v0.16.1
@@ -6,6 +6,7 @@ module Spandx
6
6
  class Hcl < Parslet::Parser
7
7
  rule(:alpha) { match['a-zA-Z'] }
8
8
  rule(:assign) { str('=') }
9
+ rule(:colon) { str(':') }
9
10
  rule(:comma) { str(',') }
10
11
  rule(:comment) { (str('#') | str('//')) >> ((str("\n") >> str("\r").maybe).absent? >> any).repeat >> eol }
11
12
  rule(:crlf) { match('[\r\n]') }
@@ -21,11 +22,13 @@ module Spandx
21
22
  rule(:major_minor_patch) { number >> dot >> number >> dot >> number }
22
23
  rule(:multiline_comment) { str('/*') >> (str('*/').absent? >> any).repeat >> str('*/') }
23
24
  rule(:number) { digit.repeat }
25
+ rule(:plus) { str('+') }
24
26
  rule(:pre_release) { hyphen >> (alpha | digit).repeat }
25
27
  rule(:pre_release?) { pre_release.maybe }
26
28
  rule(:quote) { str('"') }
27
29
  rule(:rbracket) { str(']') }
28
30
  rule(:rcurly) { str('}') }
31
+ rule(:slash) { str('/') }
29
32
  rule(:space) { match('\s') }
30
33
  rule(:tilda_wacka) { str('~>') }
31
34
  rule(:version) { number >> dot >> number >> dot >> number >> pre_release? }
@@ -61,39 +64,41 @@ module Spandx
61
64
  end
62
65
 
63
66
  rule :string do
64
- quote >> match('[0-9A-Za-z.~> :=/]').repeat.as(:value) >> quote
67
+ quote >> (
68
+ digit | dot | alpha | str('~> ') | slash | colon | assign | plus
69
+ ).repeat(1).as(:value) >> quote
65
70
  end
66
71
 
67
72
  rule :array_item do
68
- whitespace >> string >> comma >> eol
73
+ whitespace? >> string >> comma.maybe >> eol
69
74
  end
70
75
 
71
76
  rule :array do
72
- lbracket >> eol >> array_item.repeat >> rbracket
77
+ lbracket >> eol >> array_item.repeat >> whitespace >> rbracket
73
78
  end
74
79
 
75
- rule :argument do
76
- alpha.repeat.as(:name) >> whitespace >> assign >> whitespace >> (array.as(:values) | string)
80
+ rule :argument_value do
81
+ (array.as(:values) | string) >> eol
77
82
  end
78
83
 
79
- rule :arguments do
80
- (argument >> eol).repeat
84
+ rule :argument do
85
+ whitespace >> alpha.repeat(1).as(:name) >> whitespace >> assign >> whitespace >> argument_value
81
86
  end
82
87
 
83
- rule :identifier do
84
- whitespace >> quote >> ((alpha | match('[./]')).repeat).as(:name) >> quote >> whitespace
88
+ rule :block_body do
89
+ lcurly >> crlf >> argument.repeat.as(:arguments) >> rcurly
85
90
  end
86
91
 
87
- rule :block_body do
88
- arguments.as(:arguments)
92
+ rule :identifier do
93
+ whitespace >> quote >> (alpha | dot | slash).repeat(1).as(:name) >> quote >> whitespace
89
94
  end
90
95
 
91
96
  rule :block do
92
- whitespace? >> (alpha.repeat).as(:type) >> identifier >> whitespace >> lcurly >> eol >> block_body >> rcurly >> eol
97
+ alpha.repeat(1).as(:type) >> identifier >> block_body
93
98
  end
94
99
 
95
100
  rule :blocks do
96
- block.repeat.as(:blocks)
101
+ whitespace? >> (block >> eol.maybe).repeat(1).as(:blocks)
97
102
  end
98
103
 
99
104
  root(:blocks)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Spandx
4
- VERSION = '0.18.0'
4
+ VERSION = '0.18.1'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spandx
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.18.0
4
+ version: 0.18.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Can Eldem
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2021-05-11 00:00:00.000000000 Z
12
+ date: 2021-06-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: addressable
@@ -460,7 +460,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
460
460
  - !ruby/object:Gem::Version
461
461
  version: '0'
462
462
  requirements: []
463
- rubygems_version: 3.2.3
463
+ rubygems_version: 3.2.19
464
464
  signing_key:
465
465
  specification_version: 4
466
466
  summary: A ruby interface to the SPDX catalogue.