licensee 8.5.0 → 8.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (146) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +23 -104
  3. data/bin/licensee +26 -12
  4. data/lib/licensee.rb +1 -0
  5. data/lib/licensee/license.rb +6 -2
  6. data/lib/licensee/matchers/copyright_matcher.rb +2 -0
  7. data/lib/licensee/matchers/cran_matcher.rb +20 -0
  8. data/lib/licensee/matchers/exact_matcher.rb +2 -0
  9. data/lib/licensee/project.rb +2 -1
  10. data/lib/licensee/project_file.rb +8 -2
  11. data/lib/licensee/project_files/license_file.rb +27 -6
  12. data/lib/licensee/project_files/package_info.rb +6 -1
  13. data/lib/licensee/project_files/readme.rb +2 -2
  14. data/lib/licensee/projects/fs_project.rb +0 -1
  15. data/lib/licensee/version.rb +1 -1
  16. data/spec/bin_spec.rb +56 -0
  17. data/spec/fixtures/case-sensitive/LiCeNsE.TxT +0 -0
  18. data/spec/fixtures/gemspec/project.gemspec +1 -0
  19. data/spec/fixtures/lgpl/COPYING.lesser +165 -0
  20. data/spec/fixtures/lgpl/LICENSE +674 -0
  21. data/spec/fixtures/license-folder/README.md +0 -0
  22. data/{test/fixtures/mit-without-title/mit.txt → spec/fixtures/mit/LICENSE.txt} +3 -1
  23. data/{test/fixtures/mit-with-redundant-title/mit.txt → spec/fixtures/mit/README.md} +4 -2
  24. data/spec/fixtures/mpl-without-hrs/LICENSE +362 -0
  25. data/spec/fixtures/readme/README.md +23 -0
  26. data/spec/integration_spec.rb +121 -0
  27. data/spec/licensee/content_helper_spec.rb +77 -0
  28. data/spec/licensee/license_spec.rb +224 -0
  29. data/spec/licensee/matchers/copyright_matcher_spec.rb +47 -0
  30. data/spec/licensee/matchers/cran_matcher_spec.rb +18 -0
  31. data/spec/licensee/matchers/dice_matcher_spec.rb +43 -0
  32. data/spec/licensee/matchers/exact_matcher_spec.rb +26 -0
  33. data/spec/licensee/matchers/gemspec_matcher_spec.rb +29 -0
  34. data/spec/licensee/matchers/npm_bower_matcher_spec.rb +31 -0
  35. data/spec/licensee/matchers/package_matcher_spec.rb +15 -0
  36. data/spec/licensee/project_files/license_file_spec.rb +122 -0
  37. data/spec/licensee/project_files/package_info_spec.rb +51 -0
  38. data/spec/licensee/project_files/readme_spec.rb +77 -0
  39. data/spec/licensee/project_spec.rb +91 -0
  40. data/spec/licensee_spec.rb +41 -0
  41. data/spec/project_file_spec.rb +33 -0
  42. data/spec/spec_helper.rb +78 -0
  43. data/spec/vendored_license_spec.rb +75 -0
  44. data/vendor/choosealicense.com/_licenses/bsl-1.0.txt +48 -0
  45. data/vendor/choosealicense.com/_licenses/lgpl-3.0.txt +1 -1
  46. metadata +39 -111
  47. data/Rakefile +0 -12
  48. data/test/fixtures/apache-2.0/LICENSE +0 -201
  49. data/test/fixtures/bower-with-readme/README.md +0 -1
  50. data/test/fixtures/bower-with-readme/bower.json +0 -3
  51. data/test/fixtures/bower/bower.json +0 -3
  52. data/test/fixtures/bsd-2-clause-without-title/bsd-2-clause.txt +0 -23
  53. data/test/fixtures/bsd-3-clause-without-title/bsd-3-clause.txt +0 -27
  54. data/test/fixtures/case-sensitive.git/HEAD +0 -1
  55. data/test/fixtures/case-sensitive.git/config +0 -6
  56. data/test/fixtures/case-sensitive.git/objects/01/7b4f1eebd1dcb735e950b1d01093e3e2bf85e9 +0 -0
  57. data/test/fixtures/case-sensitive.git/objects/2c/b878e0851c5cf53d7455d9018baa6755a38bd7 +0 -0
  58. data/test/fixtures/case-sensitive.git/objects/fb/ddf40ba5f30225af7cd9841afe374ca5800cb9 +0 -0
  59. data/test/fixtures/case-sensitive.git/refs/heads/master +0 -1
  60. data/test/fixtures/isc-without-title/isc.txt +0 -13
  61. data/test/fixtures/lgpl.git/HEAD +0 -1
  62. data/test/fixtures/lgpl.git/config +0 -5
  63. data/test/fixtures/lgpl.git/objects/1a/cd060ebbbeac294200008657d9502130f93465 +0 -2
  64. data/test/fixtures/lgpl.git/objects/4b/1f98c1e95b6d4dae0b0a160f554be97e5afece +0 -2
  65. data/test/fixtures/lgpl.git/objects/a4/cfa42bc8e1d432fa851c5c4e3f294f01e05fd3 +0 -0
  66. data/test/fixtures/lgpl.git/objects/b7/de6e186bd02935030f5d42867ea7043fb1c27c +0 -0
  67. data/test/fixtures/lgpl.git/objects/dd/d0e017b1bf39218a6ea4f2fadd29a7ea8ebe03 +0 -0
  68. data/test/fixtures/lgpl.git/objects/eb/d853e83a2d317422c52f3922f4c9c5bb4a10b7 +0 -0
  69. data/test/fixtures/lgpl.git/refs/heads/master +0 -1
  70. data/test/fixtures/licence.git/HEAD +0 -1
  71. data/test/fixtures/licence.git/config +0 -6
  72. data/test/fixtures/licence.git/objects/66/0c086dc25f9f3b96e7afd9dee8a11b4e614543 +0 -0
  73. data/test/fixtures/licence.git/objects/68/804815597f79aa323de3257a8fd7b76449943c +0 -0
  74. data/test/fixtures/licence.git/objects/dd/59aed84c5aa4dff7ceda11a1c045f831194067 +0 -0
  75. data/test/fixtures/licence.git/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391 +0 -0
  76. data/test/fixtures/licence.git/refs/heads/master +0 -1
  77. data/test/fixtures/license-folder.git/HEAD +0 -1
  78. data/test/fixtures/license-folder.git/config +0 -6
  79. data/test/fixtures/license-folder.git/objects/32/6d0761f0c54d54327ea9e127e02d9bae14d2c8 +0 -2
  80. data/test/fixtures/license-folder.git/objects/93/109217bbe2937fc3a8d8933fddd80ed6292481 +0 -0
  81. data/test/fixtures/license-folder.git/objects/c6/6e45436e4f3fda934dc7268bccbc59c37a67b4 +0 -0
  82. data/test/fixtures/license-folder.git/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391 +0 -0
  83. data/test/fixtures/license-folder.git/refs/heads/master +0 -1
  84. data/test/fixtures/licenses.git/HEAD +0 -1
  85. data/test/fixtures/licenses.git/config +0 -4
  86. data/test/fixtures/licenses.git/objects/51/a11d50f29a14774ded8f7b90ba9938dce78a92 +0 -3
  87. data/test/fixtures/licenses.git/objects/5e/df454e6517673d5e64a33cf284308b9c6b1075 +0 -0
  88. data/test/fixtures/licenses.git/objects/e1/b4dc13f4bf683ce8f2943e051c3e91e778d043 +0 -0
  89. data/test/fixtures/licenses.git/objects/info/packs +0 -2
  90. data/test/fixtures/licenses.git/objects/pack/pack-4a7088171ae3ca900f010a4be6f1c2c96490c338.idx +0 -0
  91. data/test/fixtures/licenses.git/objects/pack/pack-4a7088171ae3ca900f010a4be6f1c2c96490c338.pack +0 -0
  92. data/test/fixtures/licenses.git/packed-refs +0 -4
  93. data/test/fixtures/licenses.git/refs/heads/master +0 -1
  94. data/test/fixtures/mit-without-title-rewrapped/mit.txt +0 -19
  95. data/test/fixtures/mpl-without-hrs.git/HEAD +0 -1
  96. data/test/fixtures/mpl-without-hrs.git/config +0 -5
  97. data/test/fixtures/mpl-without-hrs.git/objects/45/26aa2d1d78ea20fb0faf59f2360a68fa897774 +0 -0
  98. data/test/fixtures/mpl-without-hrs.git/objects/ba/f5649b61fac4ed64ec2949fe5cd616b85a8298 +0 -0
  99. data/test/fixtures/mpl-without-hrs.git/objects/be/2cc4dfb609fb6c38f6365ec345bded3350dd63 +0 -0
  100. data/test/fixtures/mpl-without-hrs.git/refs/heads/master +0 -1
  101. data/test/fixtures/named-license-file-prefix.git/HEAD +0 -1
  102. data/test/fixtures/named-license-file-prefix.git/config +0 -6
  103. data/test/fixtures/named-license-file-prefix.git/objects/64/3983d3f82ecc2a7d8e4227946220ebffd477d2 +0 -4
  104. data/test/fixtures/named-license-file-prefix.git/objects/c9/b229e500e529fdbd4f50746ba207e91d0677b6 +0 -7
  105. data/test/fixtures/named-license-file-prefix.git/objects/d1/9223f355283b3ce0c51a2c527f685d0f403157 +0 -0
  106. data/test/fixtures/named-license-file-prefix.git/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391 +0 -0
  107. data/test/fixtures/named-license-file-prefix.git/refs/heads/master +0 -1
  108. data/test/fixtures/named-license-file-suffix.git/HEAD +0 -1
  109. data/test/fixtures/named-license-file-suffix.git/config +0 -6
  110. data/test/fixtures/named-license-file-suffix.git/objects/36/465372136f81a2089f486298ca77ef41611198 +0 -0
  111. data/test/fixtures/named-license-file-suffix.git/objects/4a/2a139e7fbd24eef5c5ef3d22f490e89405f6a3 +0 -3
  112. data/test/fixtures/named-license-file-suffix.git/objects/c9/b229e500e529fdbd4f50746ba207e91d0677b6 +0 -7
  113. data/test/fixtures/named-license-file-suffix.git/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391 +0 -0
  114. data/test/fixtures/named-license-file-suffix.git/refs/heads/master +0 -1
  115. data/test/fixtures/no-license.git/HEAD +0 -1
  116. data/test/fixtures/no-license.git/config +0 -6
  117. data/test/fixtures/no-license.git/objects/82/0c999cf27a6f71431646c404274c578f7a2869 +0 -0
  118. data/test/fixtures/no-license.git/objects/e1/d9b2a3d41c2ea74a520e66da2b5c63b2f6202f +0 -0
  119. data/test/fixtures/no-license.git/objects/ff/1592f44259635df9feda5e02853964b26f9e4d +0 -0
  120. data/test/fixtures/no-license.git/refs/heads/master +0 -1
  121. data/test/fixtures/npm-non-spdx/package.json +0 -3
  122. data/test/fixtures/npm.git/HEAD +0 -1
  123. data/test/fixtures/npm.git/config +0 -4
  124. data/test/fixtures/npm.git/objects/info/packs +0 -2
  125. data/test/fixtures/npm.git/objects/pack/pack-03c0879445cabcc37f91d97c7955465adef26f4a.idx +0 -0
  126. data/test/fixtures/npm.git/objects/pack/pack-03c0879445cabcc37f91d97c7955465adef26f4a.pack +0 -0
  127. data/test/fixtures/npm.git/packed-refs +0 -2
  128. data/test/fixtures/npm/package.json +0 -3
  129. data/test/functions.rb +0 -73
  130. data/test/helper.rb +0 -16
  131. data/test/licensee/matchers/test_copyright_matcher.rb +0 -59
  132. data/test/licensee/matchers/test_dice_matcher.rb +0 -60
  133. data/test/licensee/matchers/test_exact_matcher.rb +0 -25
  134. data/test/licensee/matchers/test_gemspec_matcher.rb +0 -11
  135. data/test/licensee/matchers/test_npm_bower_matcher.rb +0 -27
  136. data/test/licensee/matchers/test_package_matcher.rb +0 -27
  137. data/test/licensee/project_files/test_license_file.rb +0 -73
  138. data/test/licensee/project_files/test_package_info.rb +0 -19
  139. data/test/licensee/project_files/test_readme.rb +0 -47
  140. data/test/licensee/test_content_helper.rb +0 -81
  141. data/test/licensee/test_license.rb +0 -182
  142. data/test/licensee/test_project.rb +0 -134
  143. data/test/licensee/test_project_file.rb +0 -24
  144. data/test/test_licensee.rb +0 -40
  145. data/test/test_licensee_bin.rb +0 -37
  146. data/test/test_licensee_vendor.rb +0 -33
@@ -0,0 +1,78 @@
1
+ require 'coveralls'
2
+ Coveralls.wear!
3
+
4
+ require 'licensee'
5
+ require 'open3'
6
+ require 'tmpdir'
7
+
8
+ RSpec.configure do |config|
9
+ config.shared_context_metadata_behavior = :apply_to_host_groups
10
+ config.example_status_persistence_file_path = 'spec/examples.txt'
11
+ config.disable_monkey_patching!
12
+ config.warnings = true
13
+
14
+ config.default_formatter = 'doc' if config.files_to_run.one?
15
+
16
+ config.order = :random
17
+ Kernel.srand config.seed
18
+ end
19
+
20
+ def project_root
21
+ File.expand_path '../', File.dirname(__FILE__)
22
+ end
23
+
24
+ def fixtures_base
25
+ File.expand_path 'spec/fixtures', project_root
26
+ end
27
+
28
+ def fixture_path(fixture)
29
+ File.expand_path fixture, fixtures_base
30
+ end
31
+
32
+ def sub_copyright_info(text)
33
+ text.sub! '[fullname]', 'Ben Balter'
34
+ text.sub! '[year]', '2016'
35
+ text.sub! '[email]', 'ben@github.invalid'
36
+ text
37
+ end
38
+
39
+ def wrap(text, line_width = 80)
40
+ text = text.clone
41
+ copyright = /^#{Licensee::Matchers::Copyright::REGEX}$/i.match(text)
42
+ if copyright
43
+ text.gsub!(/^#{Licensee::Matchers::Copyright::REGEX}$/i, '[COPYRIGHT]')
44
+ end
45
+ text.gsub!(/([^\n])\n([^\n])/, '\1 \2')
46
+
47
+ text = text.split("\n").collect do |line|
48
+ if line.length > line_width
49
+ line.gsub(/(.{1,#{line_width}})(\s+|$)/, "\\1\n").strip
50
+ else
51
+ line
52
+ end
53
+ end * "\n"
54
+ text.gsub! '[COPYRIGHT]', "\n#{copyright}\n" if copyright
55
+ text.strip
56
+ end
57
+
58
+ # Add random words to the end of a license to test similarity tollerances
59
+ def add_random_words(string, count = 5)
60
+ string = string.dup
61
+ ipsum = %w(lorem ipsum dolor sit amet consectetur adipiscing elit)
62
+ count.times do
63
+ string << " #{ipsum[Random.rand(ipsum.length)]}"
64
+ end
65
+ string
66
+ end
67
+
68
+ def git_init(path)
69
+ Dir.chdir path do
70
+ `git init`
71
+ `git add .`
72
+ `git commit -m 'initial commit'`
73
+ end
74
+ end
75
+
76
+ RSpec::Matchers.define :be_an_existing_file do
77
+ match { |path| File.exist?(path) }
78
+ end
@@ -0,0 +1,75 @@
1
+ RSpec.describe 'vendored licenes' do
2
+ let(:filename) { 'LICENSE.txt' }
3
+ let(:license_file) { Licensee::Project::LicenseFile.new(content, filename) }
4
+ let(:detected_license) { license_file.license }
5
+ let(:wtfpl) { Licensee::License.find('wtfpl') }
6
+
7
+ Licensee.licenses(hidden: true).each do |license|
8
+ next if license.pseudo_license?
9
+
10
+ context "the #{license.meta['spdx-id'] || license.key} license" do
11
+ let(:content_with_copyright) { sub_copyright_info(license.content) }
12
+ let(:content) { content_with_copyright }
13
+
14
+ it 'detects the license' do
15
+ expect(detected_license).to eql(license)
16
+ end
17
+
18
+ context 'when modified' do
19
+ let(:line_length) { 50 }
20
+ let(:random_words) { 3 }
21
+ let(:content_rewrapped) { wrap(content_with_copyright, line_length) }
22
+ let(:content_with_random_words) do
23
+ add_random_words(content_with_copyright, random_words)
24
+ end
25
+
26
+ context 'without the title' do
27
+ let(:content) do
28
+ content = content_with_copyright.sub(/\A.*license\n/i, '')
29
+ content.sub(/\A#{license.name}/i, '')
30
+ end
31
+
32
+ it 'detects the license' do
33
+ # WTFPL is too short to be mofifed and still be detected
34
+ expect(detected_license).to eql(license) unless license == wtfpl
35
+ end
36
+ end
37
+
38
+ context 'with a double title' do
39
+ let(:content) { "#{license.name}\n\n#{content_with_copyright}" }
40
+
41
+ it 'detects the license' do
42
+ # WTFPL is too short to be mofifed and still be detected
43
+ expect(detected_license).to eql(license) unless license == wtfpl
44
+ end
45
+ end
46
+
47
+ context 'when re-wrapped' do
48
+ let(:content) { content_rewrapped }
49
+
50
+ it 'detects the license' do
51
+ expect(detected_license).to eql(license)
52
+ end
53
+ end
54
+
55
+ context 'with random words added' do
56
+ let(:content) { content_with_random_words }
57
+
58
+ it 'detects the license' do
59
+ # WTFPL is too short to be mofifed and still be detected
60
+ expect(detected_license).to eql(license) unless license == wtfpl
61
+ end
62
+ end
63
+
64
+ context 'when rewrapped with random words added' do
65
+ let(:content) { wrap(content_with_random_words, line_length) }
66
+
67
+ it 'detects the license' do
68
+ # WTFPL is too short to be mofifed and still be detected
69
+ expect(detected_license).to eql(license) unless license == wtfpl
70
+ end
71
+ end
72
+ end
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,48 @@
1
+ ---
2
+ title: Boost Software License 1.0
3
+ spdx-id: BSL-1.0
4
+ source: https://opensource.org/licenses/BSL-1.0
5
+
6
+ description: A simple permissive license only requiring preservation of copyright and license notices for source (and not binary) distribution. Licensed works, modifications, and larger works may be distributed under different terms and without source code.
7
+
8
+ how: Create a text file (typically named LICENSE or LICENSE.txt) in the root of your source code and copy the text of the license into the file.
9
+
10
+ note: Boost recommends taking the additional step of adding a boilerplate notice to the top of each file. The boilerplate can be found at the [Boost Software License FAQ](http://www.boost.org/users/license.html#FAQ).
11
+
12
+ permissions:
13
+ - commercial-use
14
+ - modifications
15
+ - distribution
16
+ - private-use
17
+
18
+ conditions:
19
+ - include-copyright
20
+
21
+ limitations:
22
+ - no-liability
23
+
24
+ ---
25
+
26
+ Boost Software License - Version 1.0 - August 17th, 2003
27
+
28
+ Permission is hereby granted, free of charge, to any person or organization
29
+ obtaining a copy of the software and accompanying documentation covered by
30
+ this license (the "Software") to use, reproduce, display, distribute,
31
+ execute, and transmit the Software, and to prepare derivative works of the
32
+ Software, and to permit third-parties to whom the Software is furnished to
33
+ do so, all subject to the following:
34
+
35
+ The copyright notices in the Software and this entire statement, including
36
+ the above license grant, this restriction and the following disclaimer,
37
+ must be included in all copies of the Software, in whole or in part, and
38
+ all derivative works of the Software, unless such copies or derivative
39
+ works are solely in the form of machine-executable object code generated by
40
+ a source language processor.
41
+
42
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
43
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
44
+ FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
45
+ SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
46
+ FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
47
+ ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
48
+ DEALINGS IN THE SOFTWARE.
@@ -8,7 +8,7 @@ hidden: false
8
8
 
9
9
  description: Permissions of this copyleft license are conditioned on making available complete source code of licensed works and modifications under the same license or the GNU GPLv3. Copyright and license notices must be preserved. Contributors provide an express grant of patent rights. However, a larger work using the licensed work through interfaces provided by the licensed work may be distributed under different terms and without source code for the larger work.
10
10
 
11
- how: This license is an additional set of permissions to the <a href="/licenses/gpl-3.0">GNU GPLv3</a> license. Follow the instructions to apply the GNU GPLv3. Then either paste this text to the bottom of the created file OR add a separate file (typically named COPYING.lesser or LICENSE.lesser) in the root of your source code and copy the text.
11
+ how: This license is an additional set of permissions to the <a href="/licenses/gpl-3.0">GNU GPLv3</a> license. Follow the instructions to apply the GNU GPLv3. Then add a separate file named COPYING.LESSER in the root of your source code and copy the text.
12
12
 
13
13
  note: The Free Software Foundation recommends taking the additional step of adding a boilerplate notice to the top of each file. The boilerplate can be found at the end of the <a href="/licenses/gpl-3.0">GNU GPLv3 license</a>. Insert the word “Lesser” before “General” in all three places in the boilerplate notice to make sure that you refer to the GNU LGPLv3 and not the GNU GPLv3.
14
14
 
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: 8.5.0
4
+ version: 8.6.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: 2016-09-20 00:00:00.000000000 Z
11
+ date: 2016-09-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rugged
@@ -39,7 +39,7 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0.9'
41
41
  - !ruby/object:Gem::Dependency
42
- name: shoulda
42
+ name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
@@ -67,33 +67,33 @@ dependencies:
67
67
  - !ruby/object:Gem::Version
68
68
  version: '10.3'
69
69
  - !ruby/object:Gem::Dependency
70
- name: ruby-prof
70
+ name: rubocop
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '0.15'
75
+ version: '0.35'
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: '0.15'
82
+ version: '0.35'
83
83
  - !ruby/object:Gem::Dependency
84
- name: rubocop
84
+ name: coveralls
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '0.35'
89
+ version: '0.8'
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: '0.35'
96
+ version: '0.8'
97
97
  description: |2
98
98
  Licensee automates the process of reading LICENSE files and
99
99
  compares their contents to known licenses using a fancy maths.
@@ -105,12 +105,12 @@ extra_rdoc_files: []
105
105
  files:
106
106
  - LICENSE.md
107
107
  - README.md
108
- - Rakefile
109
108
  - bin/licensee
110
109
  - lib/licensee.rb
111
110
  - lib/licensee/content_helper.rb
112
111
  - lib/licensee/license.rb
113
112
  - lib/licensee/matchers/copyright_matcher.rb
113
+ - lib/licensee/matchers/cran_matcher.rb
114
114
  - lib/licensee/matchers/dice_matcher.rb
115
115
  - lib/licensee/matchers/exact_matcher.rb
116
116
  - lib/licensee/matchers/gemspec_matcher.rb
@@ -124,107 +124,34 @@ files:
124
124
  - lib/licensee/projects/fs_project.rb
125
125
  - lib/licensee/projects/git_project.rb
126
126
  - lib/licensee/version.rb
127
- - test/fixtures/apache-2.0/LICENSE
128
- - test/fixtures/bower-with-readme/README.md
129
- - test/fixtures/bower-with-readme/bower.json
130
- - test/fixtures/bower/bower.json
131
- - test/fixtures/bsd-2-clause-without-title/bsd-2-clause.txt
132
- - test/fixtures/bsd-3-clause-without-title/bsd-3-clause.txt
133
- - test/fixtures/case-sensitive.git/HEAD
134
- - test/fixtures/case-sensitive.git/config
135
- - test/fixtures/case-sensitive.git/objects/01/7b4f1eebd1dcb735e950b1d01093e3e2bf85e9
136
- - test/fixtures/case-sensitive.git/objects/2c/b878e0851c5cf53d7455d9018baa6755a38bd7
137
- - test/fixtures/case-sensitive.git/objects/fb/ddf40ba5f30225af7cd9841afe374ca5800cb9
138
- - test/fixtures/case-sensitive.git/refs/heads/master
139
- - test/fixtures/isc-without-title/isc.txt
140
- - test/fixtures/lgpl.git/HEAD
141
- - test/fixtures/lgpl.git/config
142
- - test/fixtures/lgpl.git/objects/1a/cd060ebbbeac294200008657d9502130f93465
143
- - test/fixtures/lgpl.git/objects/4b/1f98c1e95b6d4dae0b0a160f554be97e5afece
144
- - test/fixtures/lgpl.git/objects/a4/cfa42bc8e1d432fa851c5c4e3f294f01e05fd3
145
- - test/fixtures/lgpl.git/objects/b7/de6e186bd02935030f5d42867ea7043fb1c27c
146
- - test/fixtures/lgpl.git/objects/dd/d0e017b1bf39218a6ea4f2fadd29a7ea8ebe03
147
- - test/fixtures/lgpl.git/objects/eb/d853e83a2d317422c52f3922f4c9c5bb4a10b7
148
- - test/fixtures/lgpl.git/refs/heads/master
149
- - test/fixtures/licence.git/HEAD
150
- - test/fixtures/licence.git/config
151
- - test/fixtures/licence.git/objects/66/0c086dc25f9f3b96e7afd9dee8a11b4e614543
152
- - test/fixtures/licence.git/objects/68/804815597f79aa323de3257a8fd7b76449943c
153
- - test/fixtures/licence.git/objects/dd/59aed84c5aa4dff7ceda11a1c045f831194067
154
- - test/fixtures/licence.git/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391
155
- - test/fixtures/licence.git/refs/heads/master
156
- - test/fixtures/license-folder.git/HEAD
157
- - test/fixtures/license-folder.git/config
158
- - test/fixtures/license-folder.git/objects/32/6d0761f0c54d54327ea9e127e02d9bae14d2c8
159
- - test/fixtures/license-folder.git/objects/93/109217bbe2937fc3a8d8933fddd80ed6292481
160
- - test/fixtures/license-folder.git/objects/c6/6e45436e4f3fda934dc7268bccbc59c37a67b4
161
- - test/fixtures/license-folder.git/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391
162
- - test/fixtures/license-folder.git/refs/heads/master
163
- - test/fixtures/licenses.git/HEAD
164
- - test/fixtures/licenses.git/config
165
- - test/fixtures/licenses.git/objects/51/a11d50f29a14774ded8f7b90ba9938dce78a92
166
- - test/fixtures/licenses.git/objects/5e/df454e6517673d5e64a33cf284308b9c6b1075
167
- - test/fixtures/licenses.git/objects/e1/b4dc13f4bf683ce8f2943e051c3e91e778d043
168
- - test/fixtures/licenses.git/objects/info/packs
169
- - test/fixtures/licenses.git/objects/pack/pack-4a7088171ae3ca900f010a4be6f1c2c96490c338.idx
170
- - test/fixtures/licenses.git/objects/pack/pack-4a7088171ae3ca900f010a4be6f1c2c96490c338.pack
171
- - test/fixtures/licenses.git/packed-refs
172
- - test/fixtures/licenses.git/refs/heads/master
173
- - test/fixtures/mit-with-redundant-title/mit.txt
174
- - test/fixtures/mit-without-title-rewrapped/mit.txt
175
- - test/fixtures/mit-without-title/mit.txt
176
- - test/fixtures/mpl-without-hrs.git/HEAD
177
- - test/fixtures/mpl-without-hrs.git/config
178
- - test/fixtures/mpl-without-hrs.git/objects/45/26aa2d1d78ea20fb0faf59f2360a68fa897774
179
- - test/fixtures/mpl-without-hrs.git/objects/ba/f5649b61fac4ed64ec2949fe5cd616b85a8298
180
- - test/fixtures/mpl-without-hrs.git/objects/be/2cc4dfb609fb6c38f6365ec345bded3350dd63
181
- - test/fixtures/mpl-without-hrs.git/refs/heads/master
182
- - test/fixtures/named-license-file-prefix.git/HEAD
183
- - test/fixtures/named-license-file-prefix.git/config
184
- - test/fixtures/named-license-file-prefix.git/objects/64/3983d3f82ecc2a7d8e4227946220ebffd477d2
185
- - test/fixtures/named-license-file-prefix.git/objects/c9/b229e500e529fdbd4f50746ba207e91d0677b6
186
- - test/fixtures/named-license-file-prefix.git/objects/d1/9223f355283b3ce0c51a2c527f685d0f403157
187
- - test/fixtures/named-license-file-prefix.git/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391
188
- - test/fixtures/named-license-file-prefix.git/refs/heads/master
189
- - test/fixtures/named-license-file-suffix.git/HEAD
190
- - test/fixtures/named-license-file-suffix.git/config
191
- - test/fixtures/named-license-file-suffix.git/objects/36/465372136f81a2089f486298ca77ef41611198
192
- - test/fixtures/named-license-file-suffix.git/objects/4a/2a139e7fbd24eef5c5ef3d22f490e89405f6a3
193
- - test/fixtures/named-license-file-suffix.git/objects/c9/b229e500e529fdbd4f50746ba207e91d0677b6
194
- - test/fixtures/named-license-file-suffix.git/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391
195
- - test/fixtures/named-license-file-suffix.git/refs/heads/master
196
- - test/fixtures/no-license.git/HEAD
197
- - test/fixtures/no-license.git/config
198
- - test/fixtures/no-license.git/objects/82/0c999cf27a6f71431646c404274c578f7a2869
199
- - test/fixtures/no-license.git/objects/e1/d9b2a3d41c2ea74a520e66da2b5c63b2f6202f
200
- - test/fixtures/no-license.git/objects/ff/1592f44259635df9feda5e02853964b26f9e4d
201
- - test/fixtures/no-license.git/refs/heads/master
202
- - test/fixtures/npm-non-spdx/package.json
203
- - test/fixtures/npm.git/HEAD
204
- - test/fixtures/npm.git/config
205
- - test/fixtures/npm.git/objects/info/packs
206
- - test/fixtures/npm.git/objects/pack/pack-03c0879445cabcc37f91d97c7955465adef26f4a.idx
207
- - test/fixtures/npm.git/objects/pack/pack-03c0879445cabcc37f91d97c7955465adef26f4a.pack
208
- - test/fixtures/npm.git/packed-refs
209
- - test/fixtures/npm/package.json
210
- - test/functions.rb
211
- - test/helper.rb
212
- - test/licensee/matchers/test_copyright_matcher.rb
213
- - test/licensee/matchers/test_dice_matcher.rb
214
- - test/licensee/matchers/test_exact_matcher.rb
215
- - test/licensee/matchers/test_gemspec_matcher.rb
216
- - test/licensee/matchers/test_npm_bower_matcher.rb
217
- - test/licensee/matchers/test_package_matcher.rb
218
- - test/licensee/project_files/test_license_file.rb
219
- - test/licensee/project_files/test_package_info.rb
220
- - test/licensee/project_files/test_readme.rb
221
- - test/licensee/test_content_helper.rb
222
- - test/licensee/test_license.rb
223
- - test/licensee/test_project.rb
224
- - test/licensee/test_project_file.rb
225
- - test/test_licensee.rb
226
- - test/test_licensee_bin.rb
227
- - test/test_licensee_vendor.rb
127
+ - spec/bin_spec.rb
128
+ - spec/fixtures/case-sensitive/LiCeNsE.TxT
129
+ - spec/fixtures/gemspec/project.gemspec
130
+ - spec/fixtures/lgpl/COPYING.lesser
131
+ - spec/fixtures/lgpl/LICENSE
132
+ - spec/fixtures/license-folder/README.md
133
+ - spec/fixtures/mit/LICENSE.txt
134
+ - spec/fixtures/mit/README.md
135
+ - spec/fixtures/mpl-without-hrs/LICENSE
136
+ - spec/fixtures/readme/README.md
137
+ - spec/integration_spec.rb
138
+ - spec/licensee/content_helper_spec.rb
139
+ - spec/licensee/license_spec.rb
140
+ - spec/licensee/matchers/copyright_matcher_spec.rb
141
+ - spec/licensee/matchers/cran_matcher_spec.rb
142
+ - spec/licensee/matchers/dice_matcher_spec.rb
143
+ - spec/licensee/matchers/exact_matcher_spec.rb
144
+ - spec/licensee/matchers/gemspec_matcher_spec.rb
145
+ - spec/licensee/matchers/npm_bower_matcher_spec.rb
146
+ - spec/licensee/matchers/package_matcher_spec.rb
147
+ - spec/licensee/project_files/license_file_spec.rb
148
+ - spec/licensee/project_files/package_info_spec.rb
149
+ - spec/licensee/project_files/readme_spec.rb
150
+ - spec/licensee/project_spec.rb
151
+ - spec/licensee_spec.rb
152
+ - spec/project_file_spec.rb
153
+ - spec/spec_helper.rb
154
+ - spec/vendored_license_spec.rb
228
155
  - vendor/choosealicense.com/_licenses/afl-3.0.txt
229
156
  - vendor/choosealicense.com/_licenses/agpl-3.0.txt
230
157
  - vendor/choosealicense.com/_licenses/apache-2.0.txt
@@ -232,6 +159,7 @@ files:
232
159
  - vendor/choosealicense.com/_licenses/bsd-2-clause.txt
233
160
  - vendor/choosealicense.com/_licenses/bsd-3-clause-clear.txt
234
161
  - vendor/choosealicense.com/_licenses/bsd-3-clause.txt
162
+ - vendor/choosealicense.com/_licenses/bsl-1.0.txt
235
163
  - vendor/choosealicense.com/_licenses/cc-by-4.0.txt
236
164
  - vendor/choosealicense.com/_licenses/cc-by-sa-4.0.txt
237
165
  - vendor/choosealicense.com/_licenses/cc0-1.0.txt
data/Rakefile DELETED
@@ -1,12 +0,0 @@
1
- require 'rake'
2
- require 'rake/testtask'
3
-
4
- Rake::TestTask.new(:test) do |test|
5
- test.libs << 'lib' << 'test'
6
- test.pattern = 'test/**/test_*.rb'
7
- end
8
-
9
- desc 'Open console with Licensee loaded'
10
- task :console do
11
- exec 'pry -r ./lib/licensee.rb'
12
- end
@@ -1,201 +0,0 @@
1
- Apache License
2
- Version 2.0, January 2004
3
- http://www.apache.org/licenses/
4
-
5
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
-
7
- 1. Definitions.
8
-
9
- "License" shall mean the terms and conditions for use, reproduction,
10
- and distribution as defined by Sections 1 through 9 of this document.
11
-
12
- "Licensor" shall mean the copyright owner or entity authorized by
13
- the copyright owner that is granting the License.
14
-
15
- "Legal Entity" shall mean the union of the acting entity and all
16
- other entities that control, are controlled by, or are under common
17
- control with that entity. For the purposes of this definition,
18
- "control" means (i) the power, direct or indirect, to cause the
19
- direction or management of such entity, whether by contract or
20
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
21
- outstanding shares, or (iii) beneficial ownership of such entity.
22
-
23
- "You" (or "Your") shall mean an individual or Legal Entity
24
- exercising permissions granted by this License.
25
-
26
- "Source" form shall mean the preferred form for making modifications,
27
- including but not limited to software source code, documentation
28
- source, and configuration files.
29
-
30
- "Object" form shall mean any form resulting from mechanical
31
- transformation or translation of a Source form, including but
32
- not limited to compiled object code, generated documentation,
33
- and conversions to other media types.
34
-
35
- "Work" shall mean the work of authorship, whether in Source or
36
- Object form, made available under the License, as indicated by a
37
- copyright notice that is included in or attached to the work
38
- (an example is provided in the Appendix below).
39
-
40
- "Derivative Works" shall mean any work, whether in Source or Object
41
- form, that is based on (or derived from) the Work and for which the
42
- editorial revisions, annotations, elaborations, or other modifications
43
- represent, as a whole, an original work of authorship. For the purposes
44
- of this License, Derivative Works shall not include works that remain
45
- separable from, or merely link (or bind by name) to the interfaces of,
46
- the Work and Derivative Works thereof.
47
-
48
- "Contribution" shall mean any work of authorship, including
49
- the original version of the Work and any modifications or additions
50
- to that Work or Derivative Works thereof, that is intentionally
51
- submitted to Licensor for inclusion in the Work by the copyright owner
52
- or by an individual or Legal Entity authorized to submit on behalf of
53
- the copyright owner. For the purposes of this definition, "submitted"
54
- means any form of electronic, verbal, or written communication sent
55
- to the Licensor or its representatives, including but not limited to
56
- communication on electronic mailing lists, source code control systems,
57
- and issue tracking systems that are managed by, or on behalf of, the
58
- Licensor for the purpose of discussing and improving the Work, but
59
- excluding communication that is conspicuously marked or otherwise
60
- designated in writing by the copyright owner as "Not a Contribution."
61
-
62
- "Contributor" shall mean Licensor and any individual or Legal Entity
63
- on behalf of whom a Contribution has been received by Licensor and
64
- subsequently incorporated within the Work.
65
-
66
- 2. Grant of Copyright License. Subject to the terms and conditions of
67
- this License, each Contributor hereby grants to You a perpetual,
68
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69
- copyright license to reproduce, prepare Derivative Works of,
70
- publicly display, publicly perform, sublicense, and distribute the
71
- Work and such Derivative Works in Source or Object form.
72
-
73
- 3. Grant of Patent License. Subject to the terms and conditions of
74
- this License, each Contributor hereby grants to You a perpetual,
75
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76
- (except as stated in this section) patent license to make, have made,
77
- use, offer to sell, sell, import, and otherwise transfer the Work,
78
- where such license applies only to those patent claims licensable
79
- by such Contributor that are necessarily infringed by their
80
- Contribution(s) alone or by combination of their Contribution(s)
81
- with the Work to which such Contribution(s) was submitted. If You
82
- institute patent litigation against any entity (including a
83
- cross-claim or counterclaim in a lawsuit) alleging that the Work
84
- or a Contribution incorporated within the Work constitutes direct
85
- or contributory patent infringement, then any patent licenses
86
- granted to You under this License for that Work shall terminate
87
- as of the date such litigation is filed.
88
-
89
- 4. Redistribution. You may reproduce and distribute copies of the
90
- Work or Derivative Works thereof in any medium, with or without
91
- modifications, and in Source or Object form, provided that You
92
- meet the following conditions:
93
-
94
- (a) You must give any other recipients of the Work or
95
- Derivative Works a copy of this License; and
96
-
97
- (b) You must cause any modified files to carry prominent notices
98
- stating that You changed the files; and
99
-
100
- (c) You must retain, in the Source form of any Derivative Works
101
- that You distribute, all copyright, patent, trademark, and
102
- attribution notices from the Source form of the Work,
103
- excluding those notices that do not pertain to any part of
104
- the Derivative Works; and
105
-
106
- (d) If the Work includes a "NOTICE" text file as part of its
107
- distribution, then any Derivative Works that You distribute must
108
- include a readable copy of the attribution notices contained
109
- within such NOTICE file, excluding those notices that do not
110
- pertain to any part of the Derivative Works, in at least one
111
- of the following places: within a NOTICE text file distributed
112
- as part of the Derivative Works; within the Source form or
113
- documentation, if provided along with the Derivative Works; or,
114
- within a display generated by the Derivative Works, if and
115
- wherever such third-party notices normally appear. The contents
116
- of the NOTICE file are for informational purposes only and
117
- do not modify the License. You may add Your own attribution
118
- notices within Derivative Works that You distribute, alongside
119
- or as an addendum to the NOTICE text from the Work, provided
120
- that such additional attribution notices cannot be construed
121
- as modifying the License.
122
-
123
- You may add Your own copyright statement to Your modifications and
124
- may provide additional or different license terms and conditions
125
- for use, reproduction, or distribution of Your modifications, or
126
- for any such Derivative Works as a whole, provided Your use,
127
- reproduction, and distribution of the Work otherwise complies with
128
- the conditions stated in this License.
129
-
130
- 5. Submission of Contributions. Unless You explicitly state otherwise,
131
- any Contribution intentionally submitted for inclusion in the Work
132
- by You to the Licensor shall be under the terms and conditions of
133
- this License, without any additional terms or conditions.
134
- Notwithstanding the above, nothing herein shall supersede or modify
135
- the terms of any separate license agreement you may have executed
136
- with Licensor regarding such Contributions.
137
-
138
- 6. Trademarks. This License does not grant permission to use the trade
139
- names, trademarks, service marks, or product names of the Licensor,
140
- except as required for reasonable and customary use in describing the
141
- origin of the Work and reproducing the content of the NOTICE file.
142
-
143
- 7. Disclaimer of Warranty. Unless required by applicable law or
144
- agreed to in writing, Licensor provides the Work (and each
145
- Contributor provides its Contributions) on an "AS IS" BASIS,
146
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147
- implied, including, without limitation, any warranties or conditions
148
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149
- PARTICULAR PURPOSE. You are solely responsible for determining the
150
- appropriateness of using or redistributing the Work and assume any
151
- risks associated with Your exercise of permissions under this License.
152
-
153
- 8. Limitation of Liability. In no event and under no legal theory,
154
- whether in tort (including negligence), contract, or otherwise,
155
- unless required by applicable law (such as deliberate and grossly
156
- negligent acts) or agreed to in writing, shall any Contributor be
157
- liable to You for damages, including any direct, indirect, special,
158
- incidental, or consequential damages of any character arising as a
159
- result of this License or out of the use or inability to use the
160
- Work (including but not limited to damages for loss of goodwill,
161
- work stoppage, computer failure or malfunction, or any and all
162
- other commercial damages or losses), even if such Contributor
163
- has been advised of the possibility of such damages.
164
-
165
- 9. Accepting Warranty or Additional Liability. While redistributing
166
- the Work or Derivative Works thereof, You may choose to offer,
167
- and charge a fee for, acceptance of support, warranty, indemnity,
168
- or other liability obligations and/or rights consistent with this
169
- License. However, in accepting such obligations, You may act only
170
- on Your own behalf and on Your sole responsibility, not on behalf
171
- of any other Contributor, and only if You agree to indemnify,
172
- defend, and hold each Contributor harmless for any liability
173
- incurred by, or claims asserted against, such Contributor by reason
174
- of your accepting any such warranty or additional liability.
175
-
176
- END OF TERMS AND CONDITIONS
177
-
178
- APPENDIX: How to apply the Apache License to your work.
179
-
180
- To apply the Apache License to your work, attach the following
181
- boilerplate notice, with the fields enclosed by brackets "{}"
182
- replaced with your own identifying information. (Don't include
183
- the brackets!) The text should be enclosed in the appropriate
184
- comment syntax for the file format. We also recommend that a
185
- file or class name and description of purpose be included on the
186
- same "printed page" as the copyright notice for easier
187
- identification within third-party archives.
188
-
189
- Copyright {yyyy} {name of copyright owner}
190
-
191
- Licensed under the Apache License, Version 2.0 (the "License");
192
- you may not use this file except in compliance with the License.
193
- You may obtain a copy of the License at
194
-
195
- http://www.apache.org/licenses/LICENSE-2.0
196
-
197
- Unless required by applicable law or agreed to in writing, software
198
- distributed under the License is distributed on an "AS IS" BASIS,
199
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200
- See the License for the specific language governing permissions and
201
- limitations under the License.