summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/spandx/guess.rb21
-rw-r--r--spandx.gemspec2
-rw-r--r--spec/unit/guess_spec.rb20
3 files changed, 17 insertions, 26 deletions
diff --git a/lib/spandx/guess.rb b/lib/spandx/guess.rb
index f459ab2..e08be7d 100644
--- a/lib/spandx/guess.rb
+++ b/lib/spandx/guess.rb
@@ -30,30 +30,22 @@ module Spandx
def license_for(raw_content, algorithm: :dice_coefficient)
content = Content.new(raw_content)
score = nil
+ catalogue.each do |license|
+ next if license.deprecated_license_id?
- if algorithm == :dice_coefficient
- catalogue.each do |license|
- next if license.deprecated_license_id?
-
- score = dice(content, license, score)
- end
- elsif algorithm == :levenshtein
- catalogue.each do |license|
- next if license.deprecated_license_id?
-
- score = levenshtein(content, license, score)
- end
+ score = algorithm == :levenshtein ? levenshtein(content, license, score) : dice(content, license, score)
end
- score ? score.item.id : nil
+ score&.item&.id
end
private
def levenshtein(target, other, score)
percentage = target.similarity_score(other.content, algorithm: :levenshtein)
- if (score.nil? || percentage < score.score)
+ if score.nil? || percentage < score.score
return Score.new(percentage, other)
end
+
score
end
@@ -62,6 +54,7 @@ module Spandx
if (percentage > 89.0) && (score.nil? || percentage > score.score)
return Score.new(percentage, other)
end
+
score
end
end
diff --git a/spandx.gemspec b/spandx.gemspec
index 74178b3..286617d 100644
--- a/spandx.gemspec
+++ b/spandx.gemspec
@@ -31,9 +31,9 @@ Gem::Specification.new do |spec|
spec.required_ruby_version = '>= 2.5.0'
spec.add_dependency 'bundler', '>= 1.16', '< 3.0.0'
- spec.add_dependency 'text', '~> 1.3'
spec.add_dependency 'net-hippie', '~> 0.3'
spec.add_dependency 'nokogiri', '~> 1.10'
+ spec.add_dependency 'text', '~> 1.3'
spec.add_dependency 'thor', '~> 0.1'
spec.add_development_dependency 'bundler-audit', '~> 0.6'
spec.add_development_dependency 'rake', '~> 13.0'
diff --git a/spec/unit/guess_spec.rb b/spec/unit/guess_spec.rb
index 0b9b646..75091ba 100644
--- a/spec/unit/guess_spec.rb
+++ b/spec/unit/guess_spec.rb
@@ -109,25 +109,23 @@ RSpec.describe Spandx::Guess do
end
end
- context "when guessing the spandx license" do
+ context 'when guessing the spandx license' do
let(:content) { IO.read('LICENSE.txt') }
it 'guesses the spandx license using the default algorithm' do
expect(subject.license_for(content)).to eql('MIT')
end
- [
- :dice_coefficient,
- :levenshtein
+ %i[
+ dice_coefficient
+ levenshtein
].each do |algorithm|
- context algorithm.to_s do
- specify { expect(subject.license_for(content, algorithm: algorithm)).to eql('MIT') }
+ specify { expect(subject.license_for(content, algorithm: algorithm)).to eql('MIT') }
- specify do
- expect do
- subject.license_for(content, algorithm: algorithm)
- end.to perform_under(0.05).sample(10)
- end
+ specify do
+ expect do
+ subject.license_for(content, algorithm: algorithm)
+ end.to perform_under(0.05).sample(10)
end
end
end