license_finder 0.9.4-java → 0.9.5-java
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/.gitignore +0 -7
- data/.travis.yml +1 -3
- data/CHANGELOG.rdoc +13 -0
- data/db/migrate/201307251004_data_fix_manual_licenses.rb +2 -2
- data/db/migrate/201307251107_reassociate_license.rb +18 -18
- data/db/migrate/201311192002_add_manually_approved_to_dependencies.rb +7 -0
- data/db/migrate/201311192003_reassociate_manual_approval.rb +14 -0
- data/db/migrate/201311192010_drop_approvals.rb +5 -0
- data/features/cli.feature +1 -1
- data/features/html_report.feature +1 -1
- data/features/{non_bundler_dependencies.feature → manually_managed_dependencies.feature} +6 -6
- data/features/step_definitions/html_report_steps.rb +2 -9
- data/features/step_definitions/{non_bundler_steps.rb → manually_managed_steps.rb} +0 -0
- data/features/step_definitions/shared_steps.rb +4 -8
- data/lib/license_finder.rb +21 -17
- data/lib/license_finder/bower.rb +3 -34
- data/lib/license_finder/bower_package.rb +63 -0
- data/lib/license_finder/bundler.rb +73 -0
- data/lib/license_finder/bundler_package.rb +33 -0
- data/lib/license_finder/cli.rb +33 -35
- data/lib/license_finder/dependency_manager.rb +14 -23
- data/lib/license_finder/license/apache2.rb +1 -1
- data/lib/license_finder/license/lgpl.rb +1 -0
- data/lib/license_finder/npm.rb +22 -39
- data/lib/license_finder/npm_package.rb +61 -0
- data/lib/license_finder/package.rb +14 -80
- data/lib/license_finder/package_saver.rb +13 -75
- data/lib/license_finder/pip.rb +21 -33
- data/lib/license_finder/pip_package.rb +51 -0
- data/lib/license_finder/platform.rb +3 -15
- data/lib/license_finder/possible_license_file.rb +0 -4
- data/lib/license_finder/possible_license_files.rb +4 -0
- data/lib/license_finder/tables.rb +2 -2
- data/lib/license_finder/tables/bundler_group.rb +3 -0
- data/lib/license_finder/tables/dependency.rb +43 -18
- data/lib/license_finder/tables/license_alias.rb +4 -0
- data/lib/license_finder/yml_to_sql.rb +22 -30
- data/license_finder.gemspec +3 -3
- data/readme.md +5 -5
- data/spec/lib/license_finder/bower_package_spec.rb +56 -0
- data/spec/lib/license_finder/bower_spec.rb +3 -24
- data/spec/lib/license_finder/bundler_package_spec.rb +62 -0
- data/spec/lib/license_finder/{bundle_spec.rb → bundler_spec.rb} +7 -7
- data/spec/lib/license_finder/cli_spec.rb +6 -6
- data/spec/lib/license_finder/dependency_manager_spec.rb +14 -15
- data/spec/lib/license_finder/html_report_spec.rb +2 -3
- data/spec/lib/license_finder/markdown_report_spec.rb +4 -4
- data/spec/lib/license_finder/npm_package_spec.rb +51 -0
- data/spec/lib/license_finder/npm_spec.rb +25 -25
- data/spec/lib/license_finder/package_saver_spec.rb +50 -190
- data/spec/lib/license_finder/pip_package_spec.rb +74 -0
- data/spec/lib/license_finder/pip_spec.rb +33 -55
- data/spec/lib/license_finder/tables/dependency_spec.rb +83 -32
- data/spec/lib/license_finder/yml_to_sql_spec.rb +5 -12
- data/spec/spec_helper.rb +22 -2
- metadata +30 -18
- data/lib/license_finder/bundle.rb +0 -74
- data/lib/license_finder/tables/approval.rb +0 -4
- data/spec/lib/license_finder/package_spec.rb +0 -98
@@ -1,74 +0,0 @@
|
|
1
|
-
require "bundler"
|
2
|
-
|
3
|
-
module LicenseFinder
|
4
|
-
class Bundle
|
5
|
-
attr_writer :ignore_groups
|
6
|
-
|
7
|
-
class << self
|
8
|
-
def current_gems(config, bundler_definition=nil)
|
9
|
-
new(config, bundler_definition).gems
|
10
|
-
end
|
11
|
-
|
12
|
-
def has_gemfile?
|
13
|
-
File.exists?(gemfile_path)
|
14
|
-
end
|
15
|
-
|
16
|
-
def gemfile_path
|
17
|
-
Pathname.new("Gemfile").expand_path
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
def initialize(config=nil, bundler_definition=nil)
|
22
|
-
@definition = bundler_definition || Bundler::Definition.build(self.class.gemfile_path, lockfile_path, nil)
|
23
|
-
@config ||= config
|
24
|
-
end
|
25
|
-
|
26
|
-
def gems
|
27
|
-
return @gems if @gems
|
28
|
-
|
29
|
-
gem_names_cache = {}
|
30
|
-
|
31
|
-
@gems ||= definition.specs_for(included_groups).map do |spec|
|
32
|
-
dependency = dependencies.detect { |dep| dep.name == spec.name }
|
33
|
-
|
34
|
-
formatted_name = format_name(spec)
|
35
|
-
gem_names_cache[format_name(spec)] = true
|
36
|
-
|
37
|
-
Package.new(spec, dependency)
|
38
|
-
end
|
39
|
-
|
40
|
-
@gems.each do |gem|
|
41
|
-
gem.children = children_for(gem, gem_names_cache)
|
42
|
-
end
|
43
|
-
|
44
|
-
@gems
|
45
|
-
end
|
46
|
-
|
47
|
-
private
|
48
|
-
attr_reader :definition
|
49
|
-
|
50
|
-
def ignore_groups
|
51
|
-
@ignore_groups ||= @config.ignore_groups
|
52
|
-
end
|
53
|
-
|
54
|
-
def dependencies
|
55
|
-
@dependencies ||= definition.dependencies
|
56
|
-
end
|
57
|
-
|
58
|
-
def included_groups
|
59
|
-
definition.groups - ignore_groups.map(&:to_sym)
|
60
|
-
end
|
61
|
-
|
62
|
-
def lockfile_path
|
63
|
-
self.class.gemfile_path.dirname.join('Gemfile.lock')
|
64
|
-
end
|
65
|
-
|
66
|
-
def children_for(gem, cache)
|
67
|
-
gem.spec.dependencies.map(&:name).select { |name| cache[name] }
|
68
|
-
end
|
69
|
-
|
70
|
-
def format_name(gem)
|
71
|
-
gem.name.split(" ")[0]
|
72
|
-
end
|
73
|
-
end
|
74
|
-
end
|
@@ -1,98 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
module LicenseFinder
|
4
|
-
describe Package do
|
5
|
-
subject { described_class.new(gemspec) }
|
6
|
-
|
7
|
-
let(:gemspec) do
|
8
|
-
Gem::Specification.new do |s|
|
9
|
-
s.name = 'spec_name'
|
10
|
-
s.version = '2.1.3'
|
11
|
-
s.summary = 'summary'
|
12
|
-
s.description = 'description'
|
13
|
-
s.homepage = 'homepage'
|
14
|
-
|
15
|
-
s.add_dependency 'foo'
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
def fixture_path(fixture)
|
20
|
-
Pathname.new(File.join(File.dirname(__FILE__), '..', '..', '..', 'spec', 'fixtures', fixture)).realpath.to_s
|
21
|
-
end
|
22
|
-
|
23
|
-
its(:name) { should == 'spec_name 2.1.3' }
|
24
|
-
its(:dependency_name) { should == 'spec_name' }
|
25
|
-
its(:dependency_version) { should == '2.1.3' }
|
26
|
-
|
27
|
-
describe "#license" do
|
28
|
-
subject do
|
29
|
-
details = Package.new(gemspec)
|
30
|
-
details.stub(:license_files).and_return([license_file])
|
31
|
-
details
|
32
|
-
end
|
33
|
-
|
34
|
-
let(:license_file) { PossibleLicenseFile.new('gem', 'gem/license/path') }
|
35
|
-
|
36
|
-
it "returns the license from the gemspec if provided" do
|
37
|
-
gemspec.stub(:license).and_return('Some License')
|
38
|
-
|
39
|
-
subject.license.should == "Some License"
|
40
|
-
end
|
41
|
-
|
42
|
-
it "returns the matched license if detected" do
|
43
|
-
license_file.stub(:license).and_return('Detected License')
|
44
|
-
|
45
|
-
subject.license.should == "Detected License"
|
46
|
-
end
|
47
|
-
|
48
|
-
it "returns 'other' otherwise" do
|
49
|
-
license_file.stub(:license).and_return(nil)
|
50
|
-
|
51
|
-
subject.license.should == "other"
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
describe "#license_files" do
|
56
|
-
it "delegates to the license files helper" do
|
57
|
-
PossibleLicenseFiles.should_receive(:new).with(gemspec.full_gem_path) { double(find: [] )}
|
58
|
-
subject.license_files
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
describe "#groups" do
|
63
|
-
context "bundler_dependency is present" do
|
64
|
-
subject { described_class.new(gemspec, bundler_dependency) }
|
65
|
-
|
66
|
-
let(:bundler_dependency) { double(:dependency, groups: [1, 2, 3]) }
|
67
|
-
|
68
|
-
it "returns bundler dependency's groups" do
|
69
|
-
subject.groups.should == bundler_dependency.groups
|
70
|
-
end
|
71
|
-
end
|
72
|
-
|
73
|
-
context "bundler_dependency is nil" do
|
74
|
-
it "returns empty array" do
|
75
|
-
subject.groups.should == []
|
76
|
-
end
|
77
|
-
end
|
78
|
-
end
|
79
|
-
end
|
80
|
-
|
81
|
-
describe PythonPackage do
|
82
|
-
it "calls out to Pip if no license is found using conventional means" do
|
83
|
-
allow(Pip).to receive(:license_for).and_return("PSF")
|
84
|
-
|
85
|
-
package = PythonPackage.new(OpenStruct.new(name: 'jasmine', version: '1.3.1', full_gem_path: '/foo/bar'))
|
86
|
-
|
87
|
-
expect(package.determine_license).to eq("PSF")
|
88
|
-
end
|
89
|
-
|
90
|
-
it "returns other if no license could be found" do
|
91
|
-
allow(Pip).to receive(:license_for).and_return("other")
|
92
|
-
|
93
|
-
package = PythonPackage.new(OpenStruct.new(name: 'jasmine', version: '1.3.1', full_gem_path: '/foo/bar'))
|
94
|
-
|
95
|
-
expect(package.determine_license).to eq("other")
|
96
|
-
end
|
97
|
-
end
|
98
|
-
end
|