license_finder 1.0.0.0-java → 1.1.1-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.
Files changed (126) hide show
  1. checksums.yaml +4 -4
  2. data/.force-build +0 -0
  3. data/.travis.yml +8 -7
  4. data/CHANGELOG.rdoc +29 -1
  5. data/Rakefile +2 -2
  6. data/db/migrate/201311192003_reassociate_manual_approval.rb +2 -3
  7. data/db/migrate/201403181732_rename_manual_fields.rb +10 -0
  8. data/db/migrate/201403190028_add_manual_approvals.rb +22 -0
  9. data/db/migrate/201403191419_add_timestamps_to_manual_approvals.rb +15 -0
  10. data/db/migrate/201403191645_remove_license_aliases.rb +23 -0
  11. data/features/cli.feature +21 -20
  12. data/features/cocoapods_dependencies.feature +10 -0
  13. data/features/configure_bundler_groups.feature +23 -0
  14. data/features/configure_ignore_dependencies.feature +16 -0
  15. data/features/{project_name.feature → configure_project_name.feature} +1 -1
  16. data/features/{whitelist.feature → configure_whitelist.feature} +6 -6
  17. data/features/manually_added.feature +19 -0
  18. data/features/{approve_dependencies.feature → manually_approved.feature} +2 -2
  19. data/features/manually_assigned_license.feature +16 -0
  20. data/features/{text_report.feature → report_csv.feature} +2 -2
  21. data/features/{html_report.feature → report_html.feature} +2 -2
  22. data/features/step_definitions/cli_steps.rb +22 -32
  23. data/features/step_definitions/cocoapod_steps.rb +8 -0
  24. data/features/step_definitions/configure_bundler_groups_steps.rb +30 -0
  25. data/features/step_definitions/configure_ignore_dependencies.rb +35 -0
  26. data/features/step_definitions/{project_name_steps.rb → configure_project_name_steps.rb} +0 -0
  27. data/features/step_definitions/configure_whitelist_steps.rb +45 -0
  28. data/features/step_definitions/gradle_steps.rb +2 -2
  29. data/features/step_definitions/manually_added_steps.rb +28 -0
  30. data/features/step_definitions/manually_approved_steps.rb +24 -0
  31. data/features/step_definitions/manually_assigned_license_steps.rb +34 -0
  32. data/features/step_definitions/maven_steps.rb +2 -2
  33. data/features/step_definitions/node_steps.rb +2 -2
  34. data/features/step_definitions/python_steps.rb +1 -1
  35. data/features/step_definitions/report_csv_steps.rb +20 -0
  36. data/features/step_definitions/report_html_steps.rb +60 -0
  37. data/features/step_definitions/shared_steps.rb +125 -104
  38. data/{files/license_finder.yml → lib/data/license_finder.example.yml} +3 -0
  39. data/lib/license_finder.rb +3 -2
  40. data/lib/license_finder/cli.rb +94 -49
  41. data/lib/license_finder/configuration.rb +21 -14
  42. data/lib/license_finder/dependency_manager.rb +27 -19
  43. data/lib/license_finder/license.rb +33 -19
  44. data/lib/license_finder/license/definitions.rb +153 -104
  45. data/lib/license_finder/license/matcher.rb +6 -1
  46. data/lib/license_finder/license/none_matcher.rb +9 -0
  47. data/lib/license_finder/license/text.rb +1 -0
  48. data/lib/license_finder/package.rb +30 -6
  49. data/lib/license_finder/package_managers/bower.rb +2 -2
  50. data/lib/license_finder/package_managers/bower_package.rb +2 -2
  51. data/lib/license_finder/package_managers/bundler.rb +9 -17
  52. data/lib/license_finder/package_managers/bundler_package.rb +1 -1
  53. data/lib/license_finder/package_managers/cocoa_pods.rb +35 -0
  54. data/lib/license_finder/package_managers/cocoa_pods_package.rb +19 -0
  55. data/lib/license_finder/package_managers/gradle.rb +9 -5
  56. data/lib/license_finder/package_managers/gradle_package.rb +4 -4
  57. data/lib/license_finder/package_managers/maven.rb +7 -3
  58. data/lib/license_finder/package_managers/maven_package.rb +5 -5
  59. data/lib/license_finder/package_managers/npm.rb +2 -2
  60. data/lib/license_finder/package_managers/npm_package.rb +2 -2
  61. data/lib/license_finder/package_managers/pip.rb +2 -2
  62. data/lib/license_finder/package_managers/pip_package.rb +7 -11
  63. data/lib/license_finder/package_saver.rb +12 -10
  64. data/lib/license_finder/possible_license_file.rb +1 -1
  65. data/lib/license_finder/possible_license_files.rb +11 -15
  66. data/lib/license_finder/reports/formatted_report.rb +25 -6
  67. data/lib/license_finder/reports/html_report.rb +2 -1
  68. data/lib/license_finder/reports/reporter.rb +3 -3
  69. data/lib/license_finder/tables.rb +6 -4
  70. data/lib/license_finder/tables/dependency.rb +36 -16
  71. data/lib/license_finder/tables/manual_approval.rb +13 -0
  72. data/lib/license_finder/yml_to_sql.rb +12 -9
  73. data/lib/templates/html_report.erb +68 -74
  74. data/lib/templates/markdown_report.erb +20 -21
  75. data/license_finder.gemspec +7 -7
  76. data/readme.md +76 -79
  77. data/spec/fixtures/Podfile +3 -0
  78. data/spec/lib/license_finder/cli_spec.rb +71 -23
  79. data/spec/lib/license_finder/configuration_spec.rb +61 -21
  80. data/spec/lib/license_finder/dependency_manager_spec.rb +52 -33
  81. data/spec/lib/license_finder/license/definitions_spec.rb +30 -14
  82. data/spec/lib/license_finder/license_spec.rb +55 -12
  83. data/spec/lib/license_finder/package_managers/bower_package_spec.rb +38 -19
  84. data/spec/lib/license_finder/package_managers/bower_spec.rb +10 -16
  85. data/spec/lib/license_finder/package_managers/bundler_package_spec.rb +39 -15
  86. data/spec/lib/license_finder/package_managers/bundler_spec.rb +10 -22
  87. data/spec/lib/license_finder/package_managers/cocoa_pods_package_spec.rb +44 -0
  88. data/spec/lib/license_finder/package_managers/cocoa_pods_spec.rb +79 -0
  89. data/spec/lib/license_finder/package_managers/gradle_package_spec.rb +4 -5
  90. data/spec/lib/license_finder/package_managers/gradle_spec.rb +26 -20
  91. data/spec/lib/license_finder/package_managers/maven_package_spec.rb +4 -5
  92. data/spec/lib/license_finder/package_managers/maven_spec.rb +16 -19
  93. data/spec/lib/license_finder/package_managers/npm_package_spec.rb +39 -19
  94. data/spec/lib/license_finder/package_managers/npm_spec.rb +10 -16
  95. data/spec/lib/license_finder/package_managers/pip_package_spec.rb +8 -8
  96. data/spec/lib/license_finder/package_managers/pip_spec.rb +10 -16
  97. data/spec/lib/license_finder/package_saver_spec.rb +27 -3
  98. data/spec/lib/license_finder/possible_license_file_spec.rb +25 -23
  99. data/spec/lib/license_finder/reports/detailed_text_report_spec.rb +6 -8
  100. data/spec/lib/license_finder/reports/html_report_spec.rb +45 -44
  101. data/spec/lib/license_finder/reports/markdown_report_spec.rb +8 -9
  102. data/spec/lib/license_finder/reports/reporter_spec.rb +1 -1
  103. data/spec/lib/license_finder/reports/text_report_spec.rb +6 -8
  104. data/spec/lib/license_finder/tables/dependency_spec.rb +57 -41
  105. data/spec/lib/license_finder/yml_to_sql_spec.rb +94 -92
  106. data/spec/spec_helper.rb +1 -0
  107. data/spec/support/stdout_helpers.rb +25 -0
  108. metadata +86 -69
  109. data/MIT.LICENSE +0 -20
  110. data/features/ignore_bundle_groups.feature +0 -23
  111. data/features/manually_managed_dependencies.feature +0 -19
  112. data/features/set_license.feature +0 -10
  113. data/features/step_definitions/approve_dependencies_steps.rb +0 -25
  114. data/features/step_definitions/html_report_steps.rb +0 -62
  115. data/features/step_definitions/ignore_bundle_groups_steps.rb +0 -29
  116. data/features/step_definitions/manually_managed_steps.rb +0 -33
  117. data/features/step_definitions/set_license_steps.rb +0 -20
  118. data/features/step_definitions/text_report_steps.rb +0 -19
  119. data/features/step_definitions/whitelist_steps.rb +0 -45
  120. data/files/dependency_breakdown.png +0 -0
  121. data/files/report_breakdown.png +0 -0
  122. data/lib/license_finder/license_url.rb +0 -9
  123. data/lib/license_finder/tables/license_alias.rb +0 -22
  124. data/spec/lib/license_finder/license_url_spec.rb +0 -16
  125. data/spec/lib/license_finder/tables/license_alias_spec.rb +0 -37
  126. data/spec/support/silence_stdout.rb +0 -13
@@ -1,106 +1,155 @@
1
- class LicenseFinder::License
2
- def self.mit_matcher
3
- url_regexp = %r{MIT Licen[sc]e.*http://(?:www\.)?opensource\.org/licenses/mit-license}
4
- header_regexp = /The MIT Licen[sc]e/
5
- one_liner_regexp = /is released under the MIT licen[sc]e/
6
-
7
- AnyMatcher.new(
8
- Matcher.from_template(Template.named("MIT")),
9
- Matcher.new(url_regexp),
10
- HeaderMatcher.new(Matcher.new(header_regexp)),
11
- Matcher.new(one_liner_regexp)
12
- )
1
+ module LicenseFinder
2
+ class License
3
+ module Definitions
4
+ extend self
5
+
6
+ def all(whitelist)
7
+ [
8
+ apache2,
9
+ bsd,
10
+ gplv2,
11
+ isc,
12
+ lgpl,
13
+ mit,
14
+ newbsd,
15
+ python,
16
+ ruby,
17
+ simplifiedbsd
18
+ ].map { |license|
19
+ whitelist_if_necessary(license, whitelist)
20
+ }
21
+ end
22
+
23
+ def build_unrecognized(name, whitelist)
24
+ result = License.new(
25
+ short_name: name,
26
+ url: nil,
27
+ matcher: NoneMatcher.new
28
+ )
29
+ whitelist_if_necessary(result, whitelist)
30
+ end
31
+
32
+ private
33
+
34
+ def whitelist_if_necessary(license, whitelist)
35
+ whitelisted = whitelist.any? { |name| license.matches_name? name }
36
+ whitelisted ? license.whitelist : license
37
+ end
38
+
39
+ def apache2
40
+ License.new(
41
+ short_name: "Apache2",
42
+ pretty_name: "Apache 2.0",
43
+ other_names: ["Apache-2.0", "Apache Software License", "Apache License 2.0", "Apache License Version 2.0", "Apache Public License 2.0"],
44
+ url: "http://www.apache.org/licenses/LICENSE-2.0.txt"
45
+ )
46
+ end
47
+
48
+ def bsd
49
+ License.new(
50
+ short_name: "BSD",
51
+ other_names: ["BSD4", "bsd-old", "4-clause BSD", "BSD-4-Clause", "BSD License"],
52
+ url: "http://en.wikipedia.org/wiki/BSD_licenses#4-clause_license_.28original_.22BSD_License.22.29"
53
+ )
54
+ end
55
+
56
+ def gplv2
57
+ License.new(
58
+ short_name: "GPLv2",
59
+ other_names: ["GPL V2", "gpl-v2", "GNU GENERAL PUBLIC LICENSE Version 2"],
60
+ url: "http://www.gnu.org/licenses/gpl-2.0.txt"
61
+ )
62
+ end
63
+
64
+ def isc
65
+ License.new(
66
+ short_name: "ISC",
67
+ url: "http://en.wikipedia.org/wiki/ISC_license"
68
+ )
69
+ end
70
+
71
+ def lgpl
72
+ License.new(
73
+ short_name: "LGPL",
74
+ other_names: ["LGPL-3", "LGPLv3", "LGPL-3.0"],
75
+ url: "http://www.gnu.org/licenses/lgpl.txt"
76
+ )
77
+ end
78
+
79
+ def mit
80
+ url_regexp = %r{MIT Licen[sc]e.*http://(?:www\.)?opensource\.org/licenses/mit-license}
81
+ header_regexp = /The MIT Licen[sc]e/
82
+ one_liner_regexp = /is released under the MIT licen[sc]e/
83
+
84
+ matcher = AnyMatcher.new(
85
+ Matcher.from_template(Template.named("MIT")),
86
+ Matcher.from_regex(url_regexp),
87
+ HeaderMatcher.new(Matcher.from_regex(header_regexp)),
88
+ Matcher.from_regex(one_liner_regexp)
89
+ )
90
+
91
+ License.new(
92
+ short_name: "MIT",
93
+ other_names: ["Expat", "MIT license", "MIT License"],
94
+ url: "http://opensource.org/licenses/mit-license",
95
+ matcher: matcher
96
+ )
97
+ end
98
+
99
+ def newbsd
100
+ template = Template.named("NewBSD")
101
+ alternate_content = template.content.gsub(
102
+ "Neither the name of <organization> nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.",
103
+ "The names of its contributors may not be used to endorse or promote products derived from this software without specific prior written permission."
104
+ )
105
+
106
+ matcher = AnyMatcher.new(
107
+ Matcher.from_template(template),
108
+ Matcher.from_text(alternate_content)
109
+ )
110
+
111
+ License.new(
112
+ short_name: "NewBSD",
113
+ pretty_name: "New BSD",
114
+ other_names: ["Modified BSD", "BSD3", "BSD-3", "3-clause BSD", "BSD-3-Clause"],
115
+ url: "http://opensource.org/licenses/BSD-3-Clause",
116
+ matcher: matcher
117
+ )
118
+ end
119
+
120
+ def python
121
+ License.new(
122
+ short_name: "Python",
123
+ pretty_name: "Python Software Foundation License",
124
+ other_names: ["PSF"],
125
+ url: "http://hg.python.org/cpython/raw-file/89ce323357db/LICENSE"
126
+ )
127
+ end
128
+
129
+ def ruby
130
+ url = "http://www.ruby-lang.org/en/LICENSE.txt"
131
+
132
+ matcher = AnyMatcher.new(
133
+ Matcher.from_template(Template.named("Ruby")),
134
+ Matcher.from_text(url)
135
+ )
136
+
137
+ License.new(
138
+ short_name: "Ruby",
139
+ pretty_name: "ruby",
140
+ url: url,
141
+ matcher: matcher
142
+ )
143
+ end
144
+
145
+ def simplifiedbsd
146
+ License.new(
147
+ short_name: "SimplifiedBSD",
148
+ pretty_name: "Simplified BSD",
149
+ other_names: ["FreeBSD", "2-clause BSD", "BSD-2-Clause"],
150
+ url: "http://opensource.org/licenses/bsd-license"
151
+ )
152
+ end
153
+ end
13
154
  end
14
-
15
- def self.new_bsd_matcher
16
- template = Template.named("NewBSD")
17
- alternate_content = template.content.gsub(
18
- "Neither the name of <organization> nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.",
19
- "The names of its contributors may not be used to endorse or promote products derived from this software without specific prior written permission."
20
- )
21
-
22
- AnyMatcher.new(
23
- Matcher.from_template(template),
24
- Matcher.from_text(alternate_content)
25
- )
26
- end
27
-
28
- def self.ruby_license_url
29
- "http://www.ruby-lang.org/en/LICENSE.txt"
30
- end
31
-
32
- def self.ruby_matcher
33
- url_regex = Regexp.new(Regexp.escape(ruby_license_url))
34
-
35
- AnyMatcher.new(
36
- Matcher.from_template(Template.named("Ruby")),
37
- Matcher.new(url_regex)
38
- )
39
- end
40
-
41
- all << new(
42
- short_name: "Apache2",
43
- pretty_name: "Apache 2.0",
44
- other_names: ["Apache-2.0", "Apache Software License", "Apache License 2.0", "Apache License Version 2.0", "Apache Public License 2.0"],
45
- url: "http://www.apache.org/licenses/LICENSE-2.0.txt"
46
- )
47
-
48
- all << new(
49
- short_name: "BSD",
50
- other_names: ["BSD4", "bsd-old", "4-clause BSD", "BSD-4-Clause", "BSD License"],
51
- url: "http://en.wikipedia.org/wiki/BSD_licenses#4-clause_license_.28original_.22BSD_License.22.29"
52
- )
53
-
54
- all << new(
55
- short_name: "GPLv2",
56
- other_names: ["GPL V2", "gpl-v2", "GNU GENERAL PUBLIC LICENSE Version 2"],
57
- url: "http://www.gnu.org/licenses/gpl-2.0.txt"
58
- )
59
-
60
- all << new(
61
- short_name: "ISC",
62
- url: "http://en.wikipedia.org/wiki/ISC_license"
63
- )
64
-
65
- all << new(
66
- short_name: "LGPL",
67
- other_names: ["LGPL-3", "LGPLv3", "LGPL-3.0"],
68
- url: "http://www.gnu.org/licenses/lgpl.txt"
69
- )
70
-
71
- all << new(
72
- short_name: "MIT",
73
- other_names: ["Expat", "MIT license", "MIT License"],
74
- url: "http://opensource.org/licenses/mit-license",
75
- matcher: mit_matcher
76
- )
77
-
78
- all << new(
79
- short_name: "NewBSD",
80
- pretty_name: "New BSD",
81
- other_names: ["Modified BSD", "BSD3", "BSD-3", "3-clause BSD", "BSD-3-Clause"],
82
- url: "http://opensource.org/licenses/BSD-3-Clause",
83
- matcher: new_bsd_matcher
84
- )
85
-
86
- all << new(
87
- short_name: "Python",
88
- pretty_name: "Python Software Foundation License",
89
- other_names: ["PSF"],
90
- url: "http://hg.python.org/cpython/raw-file/89ce323357db/LICENSE"
91
- )
92
-
93
- all << new(
94
- short_name: "Ruby",
95
- pretty_name: "ruby",
96
- url: ruby_license_url,
97
- matcher: ruby_matcher
98
- )
99
-
100
- all << new(
101
- short_name: "SimplifiedBSD",
102
- pretty_name: "Simplified BSD",
103
- other_names: ["FreeBSD", "2-clause BSD", "BSD-2-Clause"],
104
- url: "http://opensource.org/licenses/bsd-license"
105
- )
106
155
  end
@@ -6,7 +6,12 @@ module LicenseFinder
6
6
  end
7
7
 
8
8
  def self.from_text(text)
9
- new(Text.compile_to_regex(text))
9
+ from_regex(Text.compile_to_regex(text))
10
+ end
11
+
12
+ # an alias for Matcher.new, for uniformity of constructors
13
+ def self.from_regex(regexp)
14
+ new(regexp)
10
15
  end
11
16
 
12
17
  def matches_text?(text)
@@ -0,0 +1,9 @@
1
+ module LicenseFinder
2
+ class License
3
+ class NoneMatcher
4
+ def matches_text?(text)
5
+ false
6
+ end
7
+ end
8
+ end
9
+ end
@@ -8,6 +8,7 @@ module LicenseFinder
8
8
  def self.normalize_punctuation(text)
9
9
  text.gsub(SPACES, ' ')
10
10
  .gsub(QUOTES, '"')
11
+ .strip
11
12
  end
12
13
 
13
14
  def self.compile_to_regex(text)
@@ -6,8 +6,9 @@ module LicenseFinder
6
6
  # it_behaves_like "it conforms to interface required by PackageSaver"
7
7
  # and see BundlerPackage, PipPackage and NpmPackage
8
8
  class Package
9
- def self.extract_licenses_from_standard_spec(spec)
9
+ def self.license_names_from_standard_spec(spec)
10
10
  licenses = spec["licenses"] || [spec["license"]].compact
11
+ licenses = [licenses] unless licenses.is_a?(Array)
11
12
  licenses.map do |license|
12
13
  if license.is_a? Hash
13
14
  license["type"]
@@ -24,15 +25,30 @@ module LicenseFinder
24
25
  private
25
26
 
26
27
  def determine_license
27
- licenses = (licenses_from_spec + license_from_files).uniq
28
- if licenses.length == 1
29
- licenses.first
28
+ if licenses_from_spec.any?
29
+ choose_license_from licenses_from_spec
30
+ elsif licenses_from_files.any?
31
+ choose_license_from licenses_from_files
30
32
  else
31
33
  default_license
32
34
  end
33
35
  end
34
36
 
35
- def license_from_files
37
+ def choose_license_from licenses
38
+ if ( licenses.uniq.size > 1 )
39
+ License.find_by_name "multiple licenses: #{(licenses).map(&:name).uniq.join(', ')}"
40
+ else
41
+ licenses.first
42
+ end
43
+ end
44
+
45
+ def licenses_from_spec
46
+ license_names_from_spec.map do |name|
47
+ License.find_by_name(name)
48
+ end
49
+ end
50
+
51
+ def licenses_from_files
36
52
  license_files.map(&:license).compact
37
53
  end
38
54
 
@@ -40,8 +56,16 @@ module LicenseFinder
40
56
  PossibleLicenseFiles.find(install_path)
41
57
  end
42
58
 
59
+ def multiple_licenses
60
+ if ( licenses_from_spec.uniq.size > 1 )
61
+ License.find_by_name "multiple licenses: #{(licenses_from_spec).map(&:name).uniq.join(', ')}"
62
+ else
63
+ License.find_by_name "multiple licenses: #{(licenses_from_files).map(&:name).uniq.join(', ')}"
64
+ end
65
+ end
66
+
43
67
  def default_license
44
- "other"
68
+ License.find_by_name nil
45
69
  end
46
70
  end
47
71
  end
@@ -14,13 +14,13 @@ module LicenseFinder
14
14
  end
15
15
 
16
16
  def self.active?
17
- File.exists?(package_path)
17
+ package_path.exist?
18
18
  end
19
19
 
20
20
  private
21
21
 
22
22
  def self.package_path
23
- Pathname.new('bower.json').expand_path
23
+ Pathname.new('bower.json')
24
24
  end
25
25
  end
26
26
  end
@@ -42,8 +42,8 @@ module LicenseFinder
42
42
  bower_module["canonicalDir"]
43
43
  end
44
44
 
45
- def licenses_from_spec
46
- Package.extract_licenses_from_standard_spec(module_metadata)
45
+ def license_names_from_spec
46
+ Package.license_names_from_standard_spec(module_metadata)
47
47
  end
48
48
  end
49
49
  end
@@ -2,15 +2,13 @@ require "bundler"
2
2
 
3
3
  module LicenseFinder
4
4
  class Bundler
5
- attr_writer :ignore_groups
6
-
7
5
  class << self
8
- def current_packages(config = LicenseFinder.config, bundler_definition=nil)
9
- new(config, bundler_definition).packages
6
+ def current_packages(ignore_groups = LicenseFinder.config.ignore_groups, bundler_definition=nil)
7
+ new(ignore_groups, bundler_definition).packages
10
8
  end
11
9
 
12
10
  def active?
13
- File.exists?(gemfile_path)
11
+ gemfile_path.exist?
14
12
  end
15
13
 
16
14
  def gemfile_path
@@ -18,17 +16,15 @@ module LicenseFinder
18
16
  end
19
17
  end
20
18
 
21
- def initialize(config, bundler_definition=nil)
19
+ def initialize(ignore_groups, bundler_definition=nil)
22
20
  @definition = bundler_definition || ::Bundler::Definition.build(self.class.gemfile_path, lockfile_path, nil)
23
- @config = config
21
+ @ignore_groups = ignore_groups
24
22
  end
25
23
 
26
24
  def packages
27
- return @packages if @packages
28
-
29
25
  top_level_gems = Set.new
30
26
 
31
- @packages ||= definition.specs_for(included_groups).map do |gem_def|
27
+ packages = definition.specs_for(included_groups).map do |gem_def|
32
28
  bundler_def = bundler_defs.detect { |bundler_def| bundler_def.name == gem_def.name }
33
29
 
34
30
  top_level_gems << format_name(gem_def)
@@ -36,19 +32,15 @@ module LicenseFinder
36
32
  BundlerPackage.new(gem_def, bundler_def)
37
33
  end
38
34
 
39
- @packages.each do |gem|
35
+ packages.each do |gem|
40
36
  gem.children = children_for(gem, top_level_gems)
41
37
  end
42
38
 
43
- @packages
39
+ packages
44
40
  end
45
41
 
46
42
  private
47
- attr_reader :definition
48
-
49
- def ignore_groups
50
- @ignore_groups ||= @config.ignore_groups
51
- end
43
+ attr_reader :definition, :ignore_groups
52
44
 
53
45
  def bundler_defs
54
46
  @bundler_defs ||= definition.dependencies
@@ -26,7 +26,7 @@ module LicenseFinder
26
26
  gem_def.full_gem_path
27
27
  end
28
28
 
29
- def licenses_from_spec
29
+ def license_names_from_spec
30
30
  gem_def.licenses
31
31
  end
32
32
  end