licensee 9.9.0.beta.3 → 9.9.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 +4 -4
- data/lib/licensee/content_helper.rb +5 -0
- data/lib/licensee/license.rb +6 -0
- data/lib/licensee/matchers/copyright.rb +1 -1
- data/lib/licensee/project_files/license_file.rb +1 -0
- data/lib/licensee/project_files/project_file.rb +1 -1
- data/lib/licensee/version.rb +1 -1
- data/spec/fixtures/detect.json +2 -2
- data/spec/licensee/content_helper_spec.rb +6 -0
- data/spec/licensee/license_spec.rb +6 -0
- data/spec/licensee/matchers/copyright_matcher_spec.rb +2 -1
- data/spec/licensee/project_files/license_file_spec.rb +18 -1
- data/spec/licensee/project_files/project_file_spec.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0e68d77bd40c2b0782aaa0a9e7e2920bbb1fc618f9b9c2de2d327e0402133718
|
4
|
+
data.tar.gz: 3c9f04a3200fdb7a54861698f2dd341c057c7c3cf39326679e70c4927a1cdbcd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4a59d88fea1c24eb704762f0482656e100e8d57b76d52d1cf2265db7193e81996ae8a1719fbadbab9e5f0f3d2ba9aa80304769ca47c40776b4c6caee9383ebb3
|
7
|
+
data.tar.gz: 88e89806f40aab22b987d2bae53add71b0ee7a0ba2ba92daed4574c900d3f00629cf066991f38a64efdebabbb06e95450a346382bf82b9741b1ccd93c61b0cad
|
@@ -82,6 +82,7 @@ module Licensee
|
|
82
82
|
string, _partition, _instructions = string.partition(END_OF_TERMS_REGEX)
|
83
83
|
string = strip_markup(string)
|
84
84
|
string = normalize_quotes(string)
|
85
|
+
string = normalize_https(string)
|
85
86
|
strip_whitespace(string)
|
86
87
|
end
|
87
88
|
|
@@ -178,5 +179,9 @@ module Licensee
|
|
178
179
|
def normalize_quotes(string)
|
179
180
|
string.gsub(/\s'([\w -]*?\w)'/, ' "\1"')
|
180
181
|
end
|
182
|
+
|
183
|
+
def normalize_https(string)
|
184
|
+
string.gsub(/http:/, 'https:')
|
185
|
+
end
|
181
186
|
end
|
182
187
|
end
|
data/lib/licensee/license.rb
CHANGED
@@ -117,6 +117,12 @@ module Licensee
|
|
117
117
|
@meta ||= LicenseMeta.from_yaml(yaml)
|
118
118
|
end
|
119
119
|
|
120
|
+
def spdx_id
|
121
|
+
return meta.spdx_id if meta.spdx_id
|
122
|
+
return 'NOASSERTION' if key == 'other'
|
123
|
+
return 'NONE' if key == 'no-license'
|
124
|
+
end
|
125
|
+
|
120
126
|
# Returns the human-readable license name
|
121
127
|
def name
|
122
128
|
title ? title : key.capitalize
|
@@ -5,7 +5,7 @@ module Licensee
|
|
5
5
|
|
6
6
|
# rubocop:disable Metrics/LineLength
|
7
7
|
COPYRIGHT_SYMBOLS = Regexp.union([/copyright/i, /\(c\)/i, "\u00A9", "\xC2\xA9"])
|
8
|
-
REGEX = /\A\s*#{COPYRIGHT_SYMBOLS}
|
8
|
+
REGEX = /\A(\s*#{COPYRIGHT_SYMBOLS}.*$)+/i
|
9
9
|
# rubocop:enable Metrics/LineLength
|
10
10
|
|
11
11
|
def match
|
data/lib/licensee/version.rb
CHANGED
data/spec/fixtures/detect.json
CHANGED
@@ -94,7 +94,7 @@
|
|
94
94
|
"name": "exact",
|
95
95
|
"confidence": 100
|
96
96
|
},
|
97
|
-
"matched_license": "
|
97
|
+
"matched_license": "MIT"
|
98
98
|
},
|
99
99
|
{
|
100
100
|
"filename": "licensee.gemspec",
|
@@ -105,7 +105,7 @@
|
|
105
105
|
"name": "gemspec",
|
106
106
|
"confidence": 90
|
107
107
|
},
|
108
|
-
"matched_license": "
|
108
|
+
"matched_license": "MIT"
|
109
109
|
}
|
110
110
|
]
|
111
111
|
}
|
@@ -103,6 +103,12 @@ LICENSE
|
|
103
103
|
expect(license.content_normalized).to_not include('* *')
|
104
104
|
end
|
105
105
|
|
106
|
+
it 'normalizes http: to https:' do
|
107
|
+
license = Licensee::License.find('mpl-2.0')
|
108
|
+
expect(license.content).to include('http:')
|
109
|
+
expect(license.content_normalized).to_not include('http:')
|
110
|
+
end
|
111
|
+
|
106
112
|
it 'wraps' do
|
107
113
|
lines = mit.content_normalized(wrap: 40).split("\n")
|
108
114
|
expect(lines.first.length).to be <= 40
|
@@ -11,6 +11,7 @@ RSpec.describe Licensee::License do
|
|
11
11
|
let(:cc_by) { described_class.find('cc-by-4.0') }
|
12
12
|
let(:unlicense) { described_class.find('unlicense') }
|
13
13
|
let(:other) { described_class.find('other') }
|
14
|
+
let(:no_license) { described_class.find('no-license') }
|
14
15
|
let(:gpl) { described_class.find('gpl-3.0') }
|
15
16
|
let(:lgpl) { described_class.find('lgpl-3.0') }
|
16
17
|
let(:content_hash) { '46cdc03462b9af57968df67b450cc4372ac41f53' }
|
@@ -168,6 +169,11 @@ RSpec.describe Licensee::License do
|
|
168
169
|
expect(gpl.spdx_id).to eql('GPL-3.0')
|
169
170
|
end
|
170
171
|
|
172
|
+
it 'exposes special SPDX ID for pseudo licenses' do
|
173
|
+
expect(other.spdx_id).to eql('NOASSERTION')
|
174
|
+
expect(no_license.spdx_id).to eql('NONE')
|
175
|
+
end
|
176
|
+
|
171
177
|
context '#other?' do
|
172
178
|
it 'knows MIT is not other' do
|
173
179
|
expect(gpl).to_not be_other
|
@@ -26,7 +26,8 @@ RSpec.describe Licensee::Matchers::Copyright do
|
|
26
26
|
'Comma-separated date' => 'Copyright (c) 2003, 2004 Ben Balter',
|
27
27
|
'Hyphen-separated date' => 'Copyright (c) 2003-2004 Ben Balter',
|
28
28
|
'ASCII-8BIT encoded' => "Copyright \xC2\xA92015 Ben Balter`",
|
29
|
-
'No year' => 'Copyright Ben Balter'
|
29
|
+
'No year' => 'Copyright Ben Balter',
|
30
|
+
'Multiline' => "Copyright Ben Balter\nCopyright Another Entity"
|
30
31
|
.force_encoding('ASCII-8BIT')
|
31
32
|
}.each do |description, notice|
|
32
33
|
context "with a #{description} notice" do
|
@@ -1,5 +1,6 @@
|
|
1
1
|
RSpec.describe Licensee::ProjectFiles::LicenseFile do
|
2
2
|
let(:filename) { 'LICENSE.txt' }
|
3
|
+
let(:gpl) { Licensee::License.find('gpl-3.0') }
|
3
4
|
let(:mit) { Licensee::License.find('mit') }
|
4
5
|
let(:content) { sub_copyright_info(mit) }
|
5
6
|
let(:content_hash) { '46cdc03462b9af57968df67b450cc4372ac41f53' }
|
@@ -26,6 +27,23 @@ RSpec.describe Licensee::ProjectFiles::LicenseFile do
|
|
26
27
|
end
|
27
28
|
end
|
28
29
|
|
30
|
+
context 'with a non-templated license' do
|
31
|
+
let(:content) { sub_copyright_info(gpl) }
|
32
|
+
|
33
|
+
it "doesn't match" do
|
34
|
+
expect(subject.attribution).to be_nil
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
context 'with a copyright file' do
|
39
|
+
let(:filename) { 'COPYRIGHT' }
|
40
|
+
let(:content) { 'Copyright (C) 2015 Ben Balter' }
|
41
|
+
|
42
|
+
it "doesn't match" do
|
43
|
+
expect(subject.attribution).to eql(content)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
29
47
|
it 'creates the wordset' do
|
30
48
|
expect(subject.wordset.count).to eql(91)
|
31
49
|
expect(subject.wordset.first).to eql('permission')
|
@@ -215,7 +233,6 @@ Creative Commons Attribution-NonCommercial 4.0
|
|
215
233
|
end
|
216
234
|
|
217
235
|
context 'GPL' do
|
218
|
-
let(:gpl) { Licensee::License.find('gpl-3.0') }
|
219
236
|
let(:content) { sub_copyright_info(gpl) }
|
220
237
|
|
221
238
|
it 'knows its GPL' do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: licensee
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 9.9.0
|
4
|
+
version: 9.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ben Balter
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-06-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: dotenv
|
@@ -339,9 +339,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
339
339
|
version: '2.1'
|
340
340
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
341
341
|
requirements:
|
342
|
-
- - "
|
342
|
+
- - ">="
|
343
343
|
- !ruby/object:Gem::Version
|
344
|
-
version:
|
344
|
+
version: '0'
|
345
345
|
requirements: []
|
346
346
|
rubyforge_project:
|
347
347
|
rubygems_version: 2.7.6
|